一般情况写二者是通用的。但双引号内部变量会解析,单引号则不解析
例:
$str = 'world';
echo "hello $str";
结果为:hello world
$str = 'world';
echo 'hello $str';
结果为:hello $str
因此,从速度上说,单双引号中没有变量时,二者速度相同;有变量时,单引号更快。
正则表达式的应用:
在PHP中,必须将正则表达式模式包括在一个单引号字符串中。使用双引号引用的正则表达式将带来一些不必要的复杂性。
例如:如果在模式中匹配一个反斜杠,必须使用两个反斜杠来表示它是一个反斜杠字符,而不是一个转义字符。同样,由于相同的原因,如果希望在一个双引号引用的PHP字符串中使用反斜杠字符,必须使用两个反斜杠。这可能会有些混淆,这样要求的结果将是表示一个包含了反斜杠字符的正则表达式的一个PHP字符串需要4个反斜杠。PHP解释器将这4个反斜杠解释成2个。然后,由正则表达式解释器解析为一个。
$符号也是双引号引用的PHP字符串和正则表达式的特殊字符。要使一个$字符能够在模式中匹配,必须使用“\\\$”。因为这个字符串被引用在双引号中,PHP解释器将其解析为\$,而正则表达式解释器将其解析成一个$字符。