php连接符
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连接符的更多相关文章
- 优化php代码 - 字符串echo输出 逗号也可作php连接符
2016年12月12日10:00:16 ====================== 网页访问速度的提升,是可以通过代码的优化来实现的.代码的优化,并不是说代码越少越好,而是主要看代码的运行能力和执行 ...
- Python--关于连接符+
连接符 + 连接符 + 实则是创建了新的对象并占用新的内存(dict.set不能使用) String 由于Python必须为每一个使用连接符+的字符串分配新的内存,并产生新的字符串.下面两种方式会更有 ...
- JavaScript-join连接符
1.转字符串:2种 1.将数组中每个元素都转为字符串,再用逗号分隔:var str=String(arr); 2.将数组中每个元素都字符串,再用自定义下标连接每个元素 var str=arr.join ...
- shell script的连接符是逗号,不是英文的句号
举个例子: gawk 'BEGIN{ var[ var[ var[ var[ asort(var,test) for(i in test) print ] }' 这时候敲回车就能输出 Index: - ...
- CSS 类名的单词连字符:下划线还是连接符?
本文的部分内容整理自我对此问题的解答: 命名 CSS 的类或 ID 时单词间如何连接? - 知乎 问题 CSS 类或 ID 命名时单词间连接通常有这几种写法: 驼峰式: solutionTitle.s ...
- ASP中双引号单引号和&连接符使用技巧
ASP中双引号单引号和&连接符使用技巧 一.ASP中处在双引号中的可以是任意的字符.字符串,HTML代码 1.<%response.write ("I am here" ...
- c/c++中宏定义##连接符 和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结.关于#和##在C语言的宏中,#的功能是将其后面的宏 ...
- JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符
// Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...
- URL 链接中 井号#、问号?、连接符& 分别有什么作用?
在一个 URL 中可以包含很多的内容,其中不仅仅是包含 26 个英文字母,10 个罗马数字,中文汉字,还可以拥有井号“#”.问号“?”.连接符“&”等三种最常见的符号,那么这些符号在网站中都有 ...
- Java学习笔记四:三目运算符与字符串连接符等
一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...
随机推荐
- 【转载】【翻译】JavaScript Scoping and Hoisting--JS作用域和变量提升的探讨
原文链接:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting 你知道下面的JavaScript代码执行后会aler ...
- 【Oracle】DG三种保护模式及切换方式
一.三种保护方式 Required Redo Transport Attributes for Data Protection Modes Maximum Availability Maximum P ...
- JavaScript函数和window对象
一.什么是函数 函数的含义:类似于Java中的方法,是完成特定任务的代码语句块 使用更简单:不用定义属于某个类,直接使用 二.常用系统函数 parseInt ("字符串") ...
- 安装pywinauto的步骤
team准备搞自动化测试(桌面WPF系统),这几天一直在找自动化测试工具.发现了pywinauto这款工具,许多网友反应很好用,于是下载下来试用.不得不说遇到的坑真不少,记录下来以备不时之需. 前段时 ...
- ionic Plugin插件,与原生app端交互,ionic端代码
创建plugins 目录 definitions.ts文件 definitions.ts文件: import {Plugin} from '@capacitor/core/dist/esm/defin ...
- ApplicationLoader登录失败
报错:Please sign in with an app-specific password. You can create one at appleid.apple.com 是因为帐号开启了双重认 ...
- Fish:Linux中比bash或zsh更好用的Shell
Fish是一个智能且用户友好的命令行shell,适用于macOS,Linux和其他家族.fish包含语法突出显示.根据你键入字符自动提示autosuggest-as-type和花式选项卡完成等功能,无 ...
- struts与spring整合
Spring与Struts框架整合 Spring,负责对象对象创建 Struts, 用Action处理请求 Spring与Struts框架整合, 关键点:让struts框架action对象的创建,交给 ...
- eas之控制kdtable滚动条
//滚动条支持三种状态 自动 隐藏 显示 public static final int SCROLL_STATE_AUTO=0://自动根据数据判断是否显示或隐藏 public static fin ...
- eas之编辑界面中分录默认携带的标题栏
this.kdtEntrys_detailPanel.setTitle("物件内容"); KDContainer kdtEntrys_Container = (KDContai ...