在PHP中,单引号和双引号都可以用于字符串的处理,但不可能两不同的东西都完全相同的用法,所以他们之间还是存在一些很明显的功能区别。
1.封闭的单引号内的值将按照字面意义进行处理。
在下面这个例子中,echo语句在封闭的单引号中处理:
<?php
$temp = "test";<span style="white-space:pre"> </span>//定义变量
echo 'test is equal to $temp';<span style="white-space:pre"> </span>//打印语句
?>
运行结果:
test is equal to $temp
也就是说,$temp没有变成相应的字符串,而是直接作为一个字符串打印出来。在PHP中,在每个变量的前面都有一个$美元的符号,目的是让编译器识别它是一个变量。
2.封闭的双引号内的值将被解释。
在下面这个例子中,echo语句在封闭的双引号中处理:
<?php
$temp = "test";<span> </span>//定义变量
echo "test is equal to $temp";<span> </span>//打印语句
?>
运行结果:
test is equal to test
在双引号中,$temp变量被解释为它的值test,然后进行打印。
当然,在封闭的双引号中,也可以转义实现不解释变量的结果,只不过比较的麻烦,需要在需要转义的符号前面加上一个\。
例如:
<?php
$temp = "test";<span> </span>//定义变量
echo "test is equal to \$temp";<span> </span>//打印语句
?>
运行结果:
test is equal to $temp
就相当于在封闭的单引号中的运行结果了。$被转义为普通的美元符号,没有了识别变量的作用。这在打印特定符号的时候有很大的作用,以免被解释为其他的内容。
PHP中的转义字符有:
" \n" ==>换行
"\r"==>回车
"\t"==>水平制表符
"\\"==> 反斜杠
"\$" ==>美元符号
" \' "==>单引号
" \" " ==>双引号
最后,讲一个打印的技巧,由于PHP会试图找出将值插入双引号内的变量,所以,单引号要相对比双引号快。但是,如果需要打印一个变量的话,那就必须要用双引号了啊。(吐槽一句:转义真的不怎么常用,因为确实很麻烦)