单引号和双引号的区别

时间:2020-05-01

单引号

定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

不像双引号和 heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。

$a = 'abc';
var_dump('\'\n\r\\');
var_dump('$a');

双引号

如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析

和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。PHP 5.1.1 以前,\{$var} 中的反斜线还不会被显示出来。

用双引号定义的字符串最重要的特征是变量会被解析。

$a = 'abc';
var_dump("'\"\n\r\\\t");
var_dump("$a");

单引号内部的变量不会执行, 双引号会执行

单引号解析速度比双引号快

单引号只能解析部分特殊字符,双引号可以解析一些特殊字符