我有点困惑为什么我在PHP中看到一些字符串放在单引号中,有时放在双引号中。
我只知道在. NET或C语言中,如果它在单引号中,这意味着它是一个字符,而不是一个字符串。
单引号字符串不解释其中的变量。双引号字符串可以。
此外,双引号字符串可以包含不带反斜杠的撇号,而单引号字符串可以包含未转义的引号。
单引号字符串在运行时更快,因为它们不需要解析。
两种封闭字符都是字符串。一种类型的引号可以方便地用于封闭另一种类型的引号。"'"和'"'。引号类型之间的最大区别在于,封闭标识符引用会替换双引号内的内容,而不是单引号内的内容。
"'"
'"'
事情用双引号评估,但不是单引号:
$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中,'my name'和"my name"都是字符串。您可以阅读更多关于它的信息在PHP手册。
'my name'
"my name"
你应该知道的是
$a = 'name';$b = "my $a"; == 'my name'$c = 'my $a'; != 'my name'
在PHP中,人们使用单引号来定义常量字符串,例如'a'、'my name'、'abc xyz',而使用双引号来定义包含标识符的字符串,例如"a $b $c $d"。
'a'
'abc xyz'
"a $b $c $d"
另一件事是,
echo 'my name';
比
echo "my name";
但
echo 'my ' . $a;
echo "my $a";
对于其他使用字符串的情况也是如此。
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 4.3以来单引号和双引号基本上同样快的一种方式(Useless Optimizations向底部,第C节)。此外,这基准页面有一个单引号和双引号的比较。大多数比较都是一样的。有一个双引号比单引号慢的比较。
Useless Optimizations
C
'
指定字符串的最简单方法是将其包含在单引号中。单引号通常更快,其中引用的所有内容都被视为普通字符串。
示例:
echo 'Start with a simple string';echo 'String\'s apostrophe';echo 'String with a php variable'.$name;
"
在PHP中使用双引号以避免在字符串中使用句点分隔代码(注意:如果您不想使用连接(.)运算符,请使用花括号{}包含变量)。
.
{}
echo "Start with a simple string";echo "String's apostrophe";echo "String with a php variable {$name}";
是的。使用单引号稍微快一点。
PHP不会使用额外的处理来解释单引号中的内容。当您使用双引号时,PHP必须解析以检查字符串中是否有任何变量。
有些人可能会说我有点跑题,但无论如何,这是:
你不一定要选择,因为你的字符串的内容:echo "It's \"game\" time.";或echo 'It\'s "game" time.';
echo "It's \"game\" time.";
echo 'It\'s "game" time.';
如果您熟悉英文引号的使用,以及撇号的正确字符,您可以使用双引号或单引号,因为它不再重要:echo "It’s “game” time.";和echo 'It’s “game” time.';
echo "It’s “game” time.";
echo 'It’s “game” time.';
当然,如果需要,您也可以添加变量。只是不要忘记它们只有在双引号中才会被评估!