php连接符

很多时候我们需要将几个字符串连接起来显示,在PHP中,字符串之间使用 “点” 来连接,也就是英文中的半角句号 " . " " . " 是字符串连接符,可以把两个或两个以上的字符串链接成一个字符串。例如:

1
2
3
4
5
<?php
$name "PHP中文网:";
$url =  "www.php";
echo $name $url ".cn";
?>

输出结果为:

1
PHP中文网: www.php.cn

应用字符串连接符号没有办法实现大量字符串的连接,PHP允许程序员在双引号中直接包含字符串变量,当echo语句后面使用的是 双引号 (" ")时,可以使用下面的格式来达到相同的效果。例如:

1
2
3
4
5
<?php
$name "PHP中文网:";
$url =  "www.php";
echo "$name$url.cn";     // 双引号里的变量同一般的字符串自动进行区分
?>

输出结果为:

1
PHP中文网:www.php.cn

字符串echo输出 逗号也可作php连接符

输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。如下4种方式,都能得到同样的结果,但是,只有第4种方式是最好的。

1
2
3
4
5
6
7
8
9
10
<?php
$foo 'Tom';
echo "Hello $foo, welcome to phpcn.";
echo "<br>";
echo "Hello " $foo " welcome to phpcn.";
echo "<br>";
echo 'Hello ' $foo ' welcome to phpcn.';
echo "<br>";
echo 'Hello '$foo ' welcome to phpcn.';
?>

说明:

第一个逗号" , "不能运行, 因为使用双引号会强制php为此字符串寻找替换值。

第二个好一些,因为php没有替换需要执行的。

第三个更好,因为使用了单引号,因此语言知道你能够脱离进程传送文本,但是“不好”的事情是使用了连接符(不操作,就行第二个例子一样)。

最后一个使用了单引号,并且加了一个连接符。为什么这样处理最好呢?

我们先看看第三个情况,php创建一个字符串,包含“Hello”,然后扩充它,加上foo变量(“Tom”),然后,再次扩充它,加上“welcome to phpcn.”语句,然后,echo能使用它。

然而第四的情况是,echo唯一做的一件事是发送“Hello”,接着输出$foo的内容,再输出“welcome to phpcn.”。因为echo仅仅是发送文本而没有创建一个需要扩充内容的字符串

到这里,就应该明白了优化php字符串连接符,可以提高程序运行速度。而且发现原来“,”逗号也可作php的连接符的,平时大家一般都是使用一点“.”作连接符的。是不是感觉很神奇?

据说,这可能是从C开始带过来的习惯,printf这类的输出都是变参的,echo也继承了这个优良传统。不过需要明白的是,这里的逗号是参数间隔符,不是字符串连接符。

再来说说逗号与句号的区别

1
echo $str,$str2,$str3;

使用逗号进行运算是逐个输出运算结果

1
echo $str.$str2.$str3;

使用点号先对所有字符串进行运算得到结果再输出

这样看当然是 逗号的效率比点号高。 因为逗号连接是不需要运算的。

php连接符的更多相关文章

  1. 优化php代码 - 字符串echo输出 逗号也可作php连接符

    2016年12月12日10:00:16 ====================== 网页访问速度的提升,是可以通过代码的优化来实现的.代码的优化,并不是说代码越少越好,而是主要看代码的运行能力和执行 ...

  2. Python--关于连接符+

    连接符 + 连接符 + 实则是创建了新的对象并占用新的内存(dict.set不能使用) String 由于Python必须为每一个使用连接符+的字符串分配新的内存,并产生新的字符串.下面两种方式会更有 ...

  3. JavaScript-join连接符

    1.转字符串:2种 1.将数组中每个元素都转为字符串,再用逗号分隔:var str=String(arr); 2.将数组中每个元素都字符串,再用自定义下标连接每个元素 var str=arr.join ...

  4. shell script的连接符是逗号,不是英文的句号

    举个例子: gawk 'BEGIN{ var[ var[ var[ var[ asort(var,test) for(i in test) print ] }' 这时候敲回车就能输出 Index: - ...

  5. CSS 类名的单词连字符:下划线还是连接符?

    本文的部分内容整理自我对此问题的解答: 命名 CSS 的类或 ID 时单词间如何连接? - 知乎 问题 CSS 类或 ID 命名时单词间连接通常有这几种写法: 驼峰式: solutionTitle.s ...

  6. ASP中双引号单引号和&连接符使用技巧

    ASP中双引号单引号和&连接符使用技巧 一.ASP中处在双引号中的可以是任意的字符.字符串,HTML代码 1.<%response.write ("I am here" ...

  7. c/c++中宏定义##连接符 和#符的使用

    C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关于#和##在C语言的宏中,#的功能是将其后面的宏 ...

  8. JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符

    // Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...

  9. URL 链接中 井号#、问号?、连接符& 分别有什么作用?

    在一个 URL 中可以包含很多的内容,其中不仅仅是包含 26 个英文字母,10 个罗马数字,中文汉字,还可以拥有井号“#”.问号“?”.连接符“&”等三种最常见的符号,那么这些符号在网站中都有 ...

  10. Java学习笔记四:三目运算符与字符串连接符等

    一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...

随机推荐

  1. 【转载】【翻译】JavaScript Scoping and Hoisting--JS作用域和变量提升的探讨

    原文链接:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting 你知道下面的JavaScript代码执行后会aler ...

  2. 【Oracle】DG三种保护模式及切换方式

    一.三种保护方式 Required Redo Transport Attributes for Data Protection Modes Maximum Availability Maximum P ...

  3. JavaScript函数和window对象

    一.什么是函数 函数的含义:类似于Java中的方法,是完成特定任务的代码语句块 使用更简单:不用定义属于某个类,直接使用 二.常用系统函数 parseInt ("字符串")     ...

  4. 安装pywinauto的步骤

    team准备搞自动化测试(桌面WPF系统),这几天一直在找自动化测试工具.发现了pywinauto这款工具,许多网友反应很好用,于是下载下来试用.不得不说遇到的坑真不少,记录下来以备不时之需. 前段时 ...

  5. ionic Plugin插件,与原生app端交互,ionic端代码

    创建plugins 目录 definitions.ts文件 definitions.ts文件: import {Plugin} from '@capacitor/core/dist/esm/defin ...

  6. ApplicationLoader登录失败

    报错:Please sign in with an app-specific password. You can create one at appleid.apple.com 是因为帐号开启了双重认 ...

  7. Fish:Linux中比bash或zsh更好用的Shell

    Fish是一个智能且用户友好的命令行shell,适用于macOS,Linux和其他家族.fish包含语法突出显示.根据你键入字符自动提示autosuggest-as-type和花式选项卡完成等功能,无 ...

  8. struts与spring整合

    Spring与Struts框架整合 Spring,负责对象对象创建 Struts, 用Action处理请求 Spring与Struts框架整合, 关键点:让struts框架action对象的创建,交给 ...

  9. eas之控制kdtable滚动条

    //滚动条支持三种状态 自动 隐藏 显示 public static final int SCROLL_STATE_AUTO=0://自动根据数据判断是否显示或隐藏 public static fin ...

  10. eas之编辑界面中分录默认携带的标题栏

    this.kdtEntrys_detailPanel.setTitle("物件内容");   KDContainer kdtEntrys_Container = (KDContai ...