我有些困惑,为什么我在PHP中看到一些代码,其中字符串用单引号引起来,有时用双引号引起来。
我只是在.NET或C语言中知道,如果用单引号引起来,则表示它是字符,而不是字符串。
PHP strings不仅可以用two方式指定,还可以用four方式指定。
\'
对其进行转义,而要显示反斜杠,可以使用另一个反斜杠\\
(是的,即使是单引号的字符串也可以被解析)。$type
,而您想要echo "The $types are"
。这将寻找变量$types
。要解决此问题,请使用echo "The {$type}s are"
您可以将左括号放在美元符号之前或之后。看看string parsing,了解如何使用数组变量等。<<<
开头。在此运算符之后,提供了一个标识符,然后提供了换行符。字符串本身紧随其后,然后再次使用相同的标识符以关闭引号。您无需使用此语法对引号进行转义。 <<<
序列进行标识,但是其后的标识符用单引号引起来,例如<<<'EOT'
。 在nowdoc中没有解析。速度:我不会过分强调单引号比双引号更快。在某些情况下,它们可能更快。这是文章explaining one manner in which single and double quotes are essentially equally fast since PHP 4.3(Useless Optimizations
指向底部,C
部分)。此外,此benchmarks page具有单引号与双引号的比较。大多数比较是相同的。有一个比较,双引号比单引号慢。
这里有一些使用变量的单引号和双引号的可能性
$world = "world";
"Hello '.$world.' ";
'hello ".$world."';
[一件事:
非常重要的一点是,结尾标记为Heredoc的行除分号(;)外,不得包含其他任何字符。特别是,这意味着标识符可能不是indented,并且在分号之前或之后可能没有任何spaces或tabs。
示例:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
也许我来晚了,有点题外话了,但还是这样:
由于字符串的内容之间,您不必选择:alert("It's \"game\" time.");
或alert('It\'s "game" time.');
如果您熟悉英文引号的使用以及撇号的正确字符,则可以使用双引号或单引号,因为不再重要:alert("It’s “game” time.");
和alert('It’s “game” time.');
事物用双引号而不是单引号评估:
$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.
'
单引号指定字符串的最简单方法是将其用单引号引起来。单引号通常会更快,并且将所有引号内的内容都视为纯字符串。
示例:
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必须解析以检查字符串中是否有任何变量。
单引号字符串中没有解释的变量。用双引号引起来的字符串可以。
此外,双引号字符串可以包含无反斜杠的撇号,而单引号字符串可以包含未转义的引号。
单引号的字符串在运行时速度更快,因为它们不需要解析。
在PHP中,'my name'
和"my name"
都是字符串。您可以阅读有关它的更多信息at the PHP manual。
您应该知道的是
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
在PHP中,人们使用单引号定义一个常量字符串,例如'a'
,'my name'
,'abc xyz'
,而使用双引号定义一个包含标识符的字符串,例如"a $b $c $d"
。
还有另一件事是
echo 'my name';
比…快
echo "my name";
但是
echo 'my ' . $a;
慢于
echo "my $a";
对于其他使用的字符串也是如此。
<?php
$fname = "David";
// Single quotes
echo 'My name is $fname.'; // My name is $fname.
// Double quotes
echo "My name is $fname."; // My name is David.
// Curly braces to isolate the name of the variable
echo "My name is {$fname}."; // My name is David.
// Example of heredoc
echo $foo = <<<abc
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
在PHP中,单引号文本被视为字符串值,而双引号文本将通过替换和处理它们的值来解析变量。
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
在这里,双引号解析值,单引号被视为字符串值(不解析$test
变量。]
两种封闭的字符都是字符串。一种类型的引用可以方便地用于封装另一种类型的引用。 "'"
和'"'
。引号类型之间的最大区别是用封闭的标识符引用代替了双引号,而不是单引号。
在php中使用单引号和双引号之间的区别在于,如果我们在echo语句中使用单引号,则将其视为字符串。 ...但是如果我们在双引号中输入变量名称,则它将输出该变量的值以及字符串。