PHP中'和'有什么区别?

joh*_*ack 22 php syntax

可能重复:
PHP:不同的引号?

简单的问题:

php中'和'有什么区别?我什么时候应该使用?

Pas*_*TIN 20

在PHP <= 5.2中,有3种语法用于声明字符串:

单引号:

特殊字符的变量和转义序列不会被扩展

例如 :

echo 'Variables do not $expand $either';
Run Code Online (Sandbox Code Playgroud)

将输出:

Variables do not $expand $either
Run Code Online (Sandbox Code Playgroud)


双引号:

双引号字符串最重要的特性是变量名称将被扩展.

例如 :

$a = 10;
echo "a is $a";
Run Code Online (Sandbox Code Playgroud)

将输出:

a is 10
Run Code Online (Sandbox Code Playgroud)


并且,与heredoc:

Heredoc文本的行为就像双引号字符串,没有双引号.这意味着heredoc中的引号不需要转义,

例如 :

$a = 10;
$b = 'hello';

$str = <<<END_STR
a is $a
and "b" is $b.
END_STR;

echo $str;
Run Code Online (Sandbox Code Playgroud)

会得到你:

a is 10
and "b" is hello.
Run Code Online (Sandbox Code Playgroud)


Jos*_*vis 19

基本上,单引号字符串是纯文本,几乎没有特殊情况,而双引号字符串具有可变插值(例如echo "Hello $username";)以及转义序列,例如"\n"(换行符).

您可以在PHP手册中了解有关字符串的更多信息.


小智 5

" 带引号的字符串中的任何变量都将被解析。 ' 带引号的字符串中的任何变量都不会被解析,并且将按字面显示为变量名称。因此, PHP 处理 ' 带引号的字符串会稍微快一些。

$test = 'hello';
echo "this is a $test"; // returns this is a hello
echo 'this is a $test'; // returns this is a $test
Run Code Online (Sandbox Code Playgroud)

我会说使用 ' 引号,除非你想在字符串中包含变量。