PHP字符串不仅可以通过 _两种_方式指定,还可以通过 四种 方式指定。
- 用单引号引起来的字符串几乎可以完全“按原样”显示事物。变量和大多数转义序列将不被解释。唯一的例外是,要显示文字单引号,您可以使用反斜杠对其进行转义
'
,而要显示反斜杠,则可以使用另一个反斜杠对其进行转义\
( 因此,即使是单引号的字符串也已被解析 )。 - 双引号字符串将显示许多转义字符(包括一些正则表达式),并且将评估字符串中的变量。这里重要的一点是, 您可以使用花括号来分隔要评估的变量的名称 。例如,假设您有变量
$type
并且想要echo "The $types are"
。那将寻找变量$types
。要解决此问题,echo "The {$type}s are"您可以将左括号放在美元符号之前或之后。看一看字符串解析,看看如何使用数组变量等。 - Heredoc字符串语法的工作方式类似于双引号字符串。它以开头
<<<
。在此运算符之后,提供了一个标识符,然后提供了换行符。字符串本身紧随其后,然后再次使用相同的标识符关闭引号。您无需使用此语法对引号进行转义。 - Nowdoc(自PHP 5.3.0起)字符串语法的工作原理与单引号字符串相似。区别在于,甚至不必转义单引号或反斜杠。nowdoc的标识
<<<
顺序与heredocs所用的序列相同,但是其后的标识符用单引号引起来,例如<<<'EOT'
。 nowdoc不进行任何解析。
速度:
我不会过多地强调单引号比双引号更快。在某些情况下,它们可能更快。这是一篇文章,[说明自PHP
4.3以来,单引号和双引号基本上一样快的一种方式(
Useless Optimizations朝底部,第一节
C)。此外,此
基准测试页面 具有单引号与双引号的比较。大多数比较是相同的。有一个比较,双引号比单引号慢。



