PHP 单双引号区别

robinclark 发布于 2014/09/17 09:46
阅读 317
收藏 1

如题。

$a = 'hello';

$a = $b;

if($a == “$b”) 结果为真

if($a == '$b') 结果为假

这起其中的单双 引号作用为什么不同。

PS:我还发现一个问题。社区问题都模糊不清。很少有人描述具体的问题的。这个社区和stackoverflow. tuts差距太远了。


________________________________________________________________________________

不好意思。有个地方打错了。

$a = 'hello';

$b = $a;

if($a == “$b”) 结果为真

if($a == '$b') 结果为假

------------------UPDATE-------------------------------------------------------------------------------


刚才看到了@_Obama的回答,他提到了""需要编译。而单引号直接输出。

加载中
0
jince
jince

双引号中的内容是经过PHP的语法分析器解析过的,任何变量在双引号中都会被转换成它的值进行输出显示;而单引号的内容是“所见即所得”的,无论有无变量,都被当做普通字符串进行原样输出。

jince
jince
回复 @robinclark : 不是吧,现在干啥都有压力,还是做自己喜欢的工作
言会咸
言会咸
robinclark
robinclark
回复 @jince : 还不是苦逼码农一个。不过无所谓。才干IT一个月。这个月结束就辞了。。干这个压力好大喔。
jince
jince
回复 @robinclark : 你英文太厉害了,stackoverflow社区看的人吃力
robinclark
robinclark
Thanks for your attention .I think U solved the problem.
0
帖子列表
帖子列表
$b都没定义啊
帖子列表
帖子列表
回复 @robinclark : 那是肯定的, 单引号不会解析变量,所以比较的是字面上的$b
robinclark
robinclark
不好意思。刚才打错了。
0
gat205
gat205

php手册 String字符串那章

Note: 不像引号heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。 

也就是说if($a == '$b')   实际上就是'hello' 和 '$b' 2个字符串作比较

0
色魔张大妈
色魔张大妈

双引号解释 单引号不解释

有什么异议吗


0
狂飙的小蜗牛
狂飙的小蜗牛

自己看手册。。。没有任何社区有PHP官方手册有说服力。。

简单说一下:

PHP单引号是原样输出,也就是单引号包含了什么变量值就是什么

PHP双引号会尽可能多的去解析其中包含的合法变量。。

狂飙的小蜗牛
狂飙的小蜗牛
回复 @robinclark : 那还玩个JB,坐等到月底就行了。我等苦逼的日子才刚开始!!!
robinclark
robinclark
回复 @ihotte : 这个月结束就转行了。好开心喔。
狂飙的小蜗牛
狂飙的小蜗牛
回复 @robinclark : 没让你详读手册,但是要善用手册。。如果你连看手册的耐性都没有,那还不如转行干点自己喜欢的
robinclark
robinclark
读手册太耗时间。而且没有必要。不过谢谢你的回答。前面已经有人回答过了。
0
xialeistudio
xialeistudio

单引号中的 $a 会被解析成实际的值

所以

$a="$b"

而单引号中的$a最后还是$a这两个字符

所以

$a != '$b'

返回顶部
顶部