PHP中单引号与双引号的区别 博客分类: PHP php
程序员文章站
2024-03-19 23:36:35
...
在PHP中,可以使用单引号或是双引号来定义一个字符串。在平常的使用中并没有细分这两种符号定义的字符串有什么区别。今天写了几行代码作为讲“传址赋值”的示例,在这段代码中同时使用了单引号和双引号定义字符串(请注意下面代码段中的第四行和第六行),执行过后却发生了奇妙的事情。
$var1="ChrisMao";//Assignthevalue"ChirsMao"to$var1
$var2=&$var1;//Reference$var1via$var2
echo'<b>Thevalueof$var2is:</b>',$var2,"<br>";//$var2and$var1havethesamevalue"ChrisMao"
$var2='mynameis$var2';//Modify$var2,thesametime$var1wasmodified
echo'<b>Thevalueof$var1is:</b>',$var1,"<br>";//Thevalueof$var1is"mynameis$var2"
$var2="myNewnameis$var1";//Modify$var2,thesametime$var1wasmodified
echo'<b>Thevalueof$var2is:</b>',$var2,"<br>";//Thevalueof$var1is"myNewnameismynameis$var2"
echo'<b>Thevalueof$var1is:</b>',$var1,"<br>";//Thevalueof$var1is"myNewnameismynameis$var2"
$var2=&$var1;//Reference$var1via$var2
echo'<b>Thevalueof$var2is:</b>',$var2,"<br>";//$var2and$var1havethesamevalue"ChrisMao"
$var2='mynameis$var2';//Modify$var2,thesametime$var1wasmodified
echo'<b>Thevalueof$var1is:</b>',$var1,"<br>";//Thevalueof$var1is"mynameis$var2"
$var2="myNewnameis$var1";//Modify$var2,thesametime$var1wasmodified
echo'<b>Thevalueof$var2is:</b>',$var2,"<br>";//Thevalueof$var1is"myNewnameismynameis$var2"
echo'<b>Thevalueof$var1is:</b>',$var1,"<br>";//Thevalueof$var1is"myNewnameismynameis$var2"
下图是执行结果的截图
不知大家看到这个结果有没有发现什么。在代码的第四行和第六行的赋值语句的右侧字符串中都出现了与代码段中相同的变量名,只不过是一句用单引号,另一句用的是双引号。在执行之前,预计的输出应该是把变量名做为字符串原样输出,而不是输出变量值。但执行之后却发现输出与之前的预计是不同的。使用单引号的赋值是将字符串中的变量名原样输出,而使用双引号的赋值语句则将变量名替换为此变量实际的值输出。
重新翻书到讲解字符串变量的章节,细细地阅读,赫然发现书中对这一现象早有描述:双引号字符串最重要的一点是其中的变量名会被变量值替代。都是看书不细惹的祸!
版权声明:本文为博主原创文章,未经博主允许不得转载。
推荐阅读
-
PHP中单引号与双引号的区别 博客分类: PHP php
-
控制页面中输出字符串的长度 博客分类: PHP 页面字符串长度
-
PHP中overload与override的区别
-
PHP中include()与require()的区别说明
-
替换php字符串中的单引号为双引号的方法
-
PHP中for循环与foreach的区别
-
PHP面向对象中new self()与 new static()的区别浅析
-
PHP面向对象中new self()与 new static()的区别浅析
-
PHP中bom头引发的超级血案-head中的静态文件生成到body里面了 博客分类: php phpbomcms织梦head中的静态文件生成到body里面
-
PHP中for循环与foreach的区别