答案 0 :(得分:19)
PHP中有3 syntax used to declare strings< = 5.2:
使用单引号:
变量和转义序列 特殊字符不会 扩展
例如:
echo 'Variables do not $expand $either';
将输出:
Variables do not $expand $either
使用双引号:
最重要的特征 双引号字符串就是这样的事实 变量名将被扩展。
例如:
$a = 10;
echo "a is $a";
将输出:
a is 10
并且,使用heredoc:
Heredoc文本的行为就像一个 双引号字符串,没有 双引号。这意味着报价 在heredoc中不需要 逃脱,
例如:
$a = 10;
$b = 'hello';
$str = <<<END_STR
a is $a
and "b" is $b.
END_STR;
echo $str;
会得到你:
a is 10
and "b" is hello.
答案 1 :(得分:17)
基本上,单引号字符串是纯文本,几乎没有特殊情况,而双引号字符串具有可变插值(例如echo "Hello $username";
)以及转义序列,例如“\ n”(换行符。)
您可以在PHP's manual中了解有关字符串的更多信息。
答案 2 :(得分:3)
“引用字符串”中的任何变量都将被解析。“引用字符串中的任何变量都不会被解析,并且将字面上显示为变量名。因此,引用的字符串对于PHP来说要快得多过程
$test = 'hello';
echo "this is a $test"; // returns this is a hello
echo 'this is a $test'; // returns this is a $test
除非你想要字符串中的变量,否则我会说'使用'引号。
答案 3 :(得分:1)
区别在于,双引号(“)之间的字符串被解析为变量和转义序列替换。单引号(')中的字符串不是。
所以,使用双引号(“)你可以这样做:
$count = 3;
echo "The count is:\t$count";
将产生
The count is:<tab>3
单引号中的相同内容返回文字字符串。
此外,需要转义的字符。如果你有一个字符串:
'John said, "Hello"'
你可能会使用单引号,以避免必须转义字符串中的引号,反之亦然。
答案 4 :(得分:0)
“解释转义字符和变量。”也没有。
答案 5 :(得分:0)
总而言之:当您希望所有特殊字符(例如 \ n )和变量(例如 $ number )被注意并处理时。