基本上,单引号字符串是纯文本,几乎没有特别的用法,而双引号字符串可以进行变量插值(例如,echo "Hello $username";
)以及转义序列,如“\n”(换行符)。
您可以在PHP手册中了解更多有关字符串的知识。
在PHP <= 5.2中,有3种语法用于声明字符串:
使用单引号:
变量和特殊字符的转义序列将不会被展开。
例如:
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.
在“引号”包含的字符串中,任何变量都将被解析。在‘引号’包含的字符串中,任何变量都不会被解析,并且将按字面意义显示为变量名。因此,对于PHP处理来说,‘引号’包含的字符串略微更快。
$test = 'hello';
echo "this is a $test"; // returns this is a hello
echo 'this is a $test'; // returns this is a $test
我建议在字符串中使用单引号,除非你想在字符串中嵌入变量。
区别在于,双引号(")之间的字符串会被解析以进行变量和转义序列替换。单引号(')之间的字符串则不会。
因此,使用双引号(")可以这样做:
$count = 3;
echo "The count is:\t$count";
这将产生
The count is:<tab>3
使用单引号将返回字符串字面量。
此外,还有需要转义的字符。如果你有一个字符串:
'John said, "Hello"'
你可能会使用单引号,以避免在字符串中需要转义引号和反之亦然。
"解释转义字符和变量。'不做任何操作。