PHP双引号与单引号有什么区别



PHP双引号与单引号有什么区别?PHP用双引号或单引号包含的字符都当作字符串,而它们的用法会不会完全相同呢?答案是否定的。

PHP双引号与单引号例子:

// 例1
$str1 = 'Hello World';
$str2 = "Hello World";
if ($str1 == $str2)
	echo 'true';
else
	echo 'false';

// 输出结果:true
// 例2
$World = 'World';
$str1 = 'Hello $World';
$str2 = "Hello $World";
if ($str1 == $str2)
	echo 'true';
else
	echo 'false';

// 输出结果:false

例1中输出结果是true,说明用单引号与用双引号包含的字符串是一样的,在例2中为什么$str1和$str2又不相同呢?
如果分别打印$str1和$str2

echo $str1;
// 输出:Hello $World;
echo $str2
// 输出:Hello World;

区别就出来了,用单引号包含的字符串原样输出,用双引号包含的字符串中的变量$World变成字符串World输出了。被双引号所包含的字符串需被被分析器解析,而单引号包含的字符串直接当作字符串处理,所以使用单引号比使用双引号的效率要高,这在编程时值得注意,但如果字符串中含有多个变量,直接用双引号中间写变量是一个好选择,可减去字符串拼接,代码就更简洁。