700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php 中单双引号 花括号详解

php 中单双引号 花括号详解

时间:2020-01-19 11:18:53

相关推荐

php 中单双引号 花括号详解

后端开发|php教程

php php 中单双引号 花括号详解

后端开发-php教程

php总结

经典飞机大战源码,vscode 换行符设置,ubuntu部署hive,删除tomcat服务启动,爬虫测试师,php判断是否有上传文件,晋中谷歌seo营销公司,建网站用什么系统,登录超时 模板lzw

基础知识总结 一: 关于php中单引号 双引号 花括号 问题总结

在php 中 字符串可以用 单引号 也可以用双引号 引起来表示,输出等。

例如:

医院his源码,vscode中没有bash,ubuntu zip下载,tomcat打开就是404,爬虫nginx 403,php 扩展库下载,seo数据分析点击查看,投融界网站源码,dz门户模板制作lzw

Php代码

asp学生选课系统源码,vscode gtag,ubuntu 科学上网,sql tomcat,sqlite 时间范围,服务器维护规范,如何禁用支付宝插件,前端开发框架动画,网络爬虫 数据挖掘,php 头文件,逍遥派seo,日租房网站下载,网页文字闪动,网站建设中 html模板,div固定页面位置,智睿学校网站管理系统,小程序 拼团模板lzw

他们的输出是一样的。都会打印出 aabbcc

但是 如果将aabbcc 赋值给一个变量,那么它又该如何输出呢?

Php代码

是因为“”双引号 在php中有解释的功能,它会去解释这个字符串 如果字符串中有变量或者转义字符 它会一并解释了 在进行输出 。而单引号没有解释功能,也就是说,当你 echo ‘$a’; 或者echo ‘\n’; 它只会当作字符串输出 $a \n 并不会输出你所想要的解释好的变量或者转移字符。

什么是解释功能? 其实这仅仅是,如果你用双引号输出字符串的时候,系统会去正则的匹配$符号,从而识别变量。转义字符也是。。。

针对上面转义那一块的情况还有一种情况。我们分别输出 ‘ 单引号 和 双引号 “

Php代码

echo \\; echo "\"; //双引号括住单引号,避免了再去用\ 转义 echo "\""; echo \"; //针对双引号,单引号有了避免了转义的操作。

所以,通过上面的解释,我们就可以认定为,当我们只是输出字符串的时候,不存在需要解释的东西的时候,我们应该直接用 ‘’ 单引号 这样可以省略一个解释的过程, 在运行速度上虽然看不到明显的提升,但是原理上运行效率是高于用双引号的。 当我们输出的内容需要解释时,我们可以用“” 双引号。 例如 echo “aaaaa$a”; 输出为 aaaaaaabbcc

在这里发生了一个问题。 请看代码

Php代码

$res = xxx; //第一步 echo "aaa$resbbbb"; //第二步 //这样,php在解析过程中,会当作$resbbbb 是一个变量,自然就会报错, //如何规避这样的情况呢。 echo “aaa{$res}bbbb”; //第三步

第二步 笔者其实是想要 变量 $res。但是获取到的是$resbbbb ,

因为zend解析的时候用的是正则匹配。并不知道你只想要res 。正则识别的是变量,只要是变量的字符(_字符数字,并且不是数字开头),那么系统正则就会一直匹配。如果有空格 那么变量识别自然到此为止。$ 和 空格 之间的就是变量名。(当然这里的空格 只要不是变量命名规范的字符就行)

echo “aaa$res bbbb”; 这句话就会运行正常,只不过输出的字符串中多了一个空格。

笔者 不想要 多余的这个空格呢?

那么就用第三步的代码 echo “aaa{$res}bbbb”;

这样写,zend解析的时候,同样是正则找到两个花括号。 {}中的字符会再此使用正常双引号的正则匹配。 从而直接找到$res . 而花括号不会输出

假如说 花括号中是{aaa $res} 呢?即: echo “aaa{ggg $res}bbbb”; 也就是 花括号中不仅仅只有变量 或者 不是变量。

这个时候,系统会重新判断将整个字符串用双引号的正则去解析查找变量。此时,res 后面的 “}” 不属于变量命名。

所以 上面的输出 将会是: aaa{ggg xxx}bbbb

总结: 当字符串和变量拼接输出的时候。 运行效率较高的是 {} 括住变量。当然{}中不要有非变量,不然将会比 用 “” 直接引起来慢。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。