说到PHP中单引号和双引号的区别,PHP双引号中的变量会被替换成变量的值,而单引号里面的变量不会被替换,只要学过PHP的人都知道这句话。但是,准确来说,这句话是不全面的,甚至可以说是错误的。
虽然教PHP的老师都是这么说的,但它真的是正确的准确的么?不是。为什么?
- 只有当字符串最外层的引号是双引号的时候,这个最外层里面的变量才会被转义替换为变量的值。
如果是外层单引号,内层双引号,而是内层双引号里面又有变量,变量是不会被替换的。 - 除了普通的变量以外,对象的成员属性也会被替换为对应的值,而函数或者常量写到外层双引号中,是不起作用不会被替换的。
用代码说话:
<?php
$a = 3;
echo '$a=' . $a; //最终输出的结果是 $a=3
echo '<br />';
echo '"$a"=' . $a; //最终输出的结果是 $a=3
echo '<br />';
echo "$a=" . $a; //最终输出的结果是 3=3, 因为引号里面的$a被换成了变量$a的值,也就是3
?>
|
|