双引号中的内容会被解析,而单引号中的内容不会被解析:
$s = "dollars"; echo 'This costs a lot of $s.'; // This costs a lot of $s. echo "This costs a lot of $s."; // This costs a lot of dollars.
PHP字符串不仅可以用两种方式指定,而且还可以用四种方式。
\'
\\
$type
echo "The $types are"
$types
echo "The {$type}s are"
<<<
<<<'EOT'
注意: 单引号内的单引号和双引号内的双引号必须进行转义:
$string = 'He said "What\'s up?"'; $string = "He said \"What's up?\"";
速度: 没有区别。 请阅读一篇来自PHP核心开发者的可信文章。说到测试,我们永远不应该将其视为理所当然。必须理解编写可信测试以及解释其结果需要很多知识和经验。这意味着大多数测试都是虚假的。例如,在像这样的代码中
for($i=0;$i<100000;$i++) { 'string'; }
引号字符串只被解析一次,与整个脚本一起,然后被转换为操作码。然后执行一百万次。因此,它测量的不是解析。这只是冰山一角。对于像这样的纳米基准测试,几乎不可能创建一个不会被某些干扰副作用破坏的可信测试。
双引号中的内容会被解析,而单引号中的内容不会被解析:
PHP字符串不仅可以用两种方式指定,而且还可以用四种方式。
\'
进行转义,要显示一个反斜杠,可以用另一个反斜杠\\
进行转义(所以,是的,即使是单引号字符串也会被解析)。$type
,你想要echo "The $types are"
。这将查找变量$types
。要解决这个问题,使用echo "The {$type}s are"
。查看字符串解析以了解如何使用数组变量等。<<<
开始。在这个运算符之后,提供一个标识符,然后是一个换行符。然后是字符串本身,然后再次使用相同的标识符来关闭引用。在这种语法中,你不需要转义引号。<<<
序列来标识,但后面的标识符用单引号括起来,例如<<<'EOT'
。Nowdoc中不进行解析。注意: 单引号内的单引号和双引号内的双引号必须进行转义:
速度:
没有区别。
请阅读一篇来自PHP核心开发者的可信文章。说到测试,我们永远不应该将其视为理所当然。必须理解编写可信测试以及解释其结果需要很多知识和经验。这意味着大多数测试都是虚假的。例如,在像这样的代码中
引号字符串只被解析一次,与整个脚本一起,然后被转换为操作码。然后执行一百万次。因此,它测量的不是解析。这只是冰山一角。对于像这样的纳米基准测试,几乎不可能创建一个不会被某些干扰副作用破坏的可信测试。