Single quoted strings几乎完全显示事物"as is."变量和大多数转义序列都不会被解释 . 例外情况是,要显示文字单引号,可以使用反斜杠 \' 对其进行转义,并显示反斜杠,可以使用另一个反斜杠 \\ ( So yes, even single quoted strings are parsed )对其进行转义 .
Double quote strings将显示一系列转义字符(包括一些正则表达式),并将评估字符串中的变量 . 这里的一个重点是 you can use curly braces to isolate the name of the variable you want evaluated . 例如,假设您有变量 $type ,那么 echo "The $types are" 那将寻找变量 $types . 为了解决这个问题,请使用 echo "The {$type}s are" 您可以在美元符号之前或之后放置左括号 . 看看string parsing,看看如何使用数组变量等 .
<?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;
?>
$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变量 . )
0
$name = 'test';
$singleQuote = 'This is example for single quote $name'; // here $name variable not evaluating
echo $singleQuote; // Output: This is example for single quote $name
$singleQuote = "This is example for single quote $name"; // here $name variable will evaluate and replace variable value
echo $singleQuote; // Output: This is example for single quote test
Also inside single quote expression evaluate faster campare to double quotes
11 回答
PHP strings不仅可以用两种方式指定,而且可以用 four 方式指定 .
Single quoted strings几乎完全显示事物"as is."变量和大多数转义序列都不会被解释 . 例外情况是,要显示文字单引号,可以使用反斜杠
\'
对其进行转义,并显示反斜杠,可以使用另一个反斜杠\\
( So yes, even single quoted strings are parsed )对其进行转义 .Double quote strings将显示一系列转义字符(包括一些正则表达式),并将评估字符串中的变量 . 这里的一个重点是 you can use curly braces to isolate the name of the variable you want evaluated . 例如,假设您有变量
$type
,那么echo "The $types are"
那将寻找变量$types
. 为了解决这个问题,请使用echo "The {$type}s are"
您可以在美元符号之前或之后放置左括号 . 看看string parsing,看看如何使用数组变量等 .Heredoc字符串语法的作用类似于双引号字符串 . 它以
<<<
开头 . 在此运算符之后,提供标识符,然后提供换行符 . 字符串本身如下,然后再次使用相同的标识符来关闭引号 . 您不需要在此语法中转义引号 .Nowdoc(自PHP 5.3.0起)字符串语法基本上与单引号字符串相同 . 不同之处在于,甚至不需要转义单引号或反斜杠 . nowdoc用与heredocs相同的
<<<
序列标识,但后面的标识符用单引号括起来,例如:<<<'EOT'
. No parsing is done in nowdoc.Speed:
我不会过分强调单引号比双引号更快 . 在某些情况下,它们可能更快 . 这是一篇文章explaining one manner in which single and double quotes are essentially equally fast since PHP 4.3(
Useless Optimizations
在底部,C
部分) . 此外,这benchmarks page有单一与双引号比较 . 大多数比较是相同的 . 有一个比较,其中双引号比单引号慢 .也许我有点晚了,有点偏离主题,但无论如何......
你之间的内容是:'t have to choose because of your string'
alert("It's \"game\" time.");
或alert('It\'s "game" time.');
相反,您可以这样输入,然后使用双引号或单引号,因为它无关紧要:
alert("It’s “game” time.");
和alert('It’s “game” time.');
事情用双引号评估,但不是单引号:
在PHP中,
'my name'
和"my name"
都是字符串 . 你可以阅读更多关于它at the PHP manual .你应该知道的是
在PHP中,人们使用单引号来定义常量字符串,如
'a'
,'my name'
,'abc xyz'
,同时使用双引号来定义包含"a $b $c $d"
等标识符的字符串 .还有一件事是,
比...更快
但
比...慢
对于其他使用的字符串也是如此 .
single,double,heredoc和nowdoc引号的示例
两种封闭的字符都是字符串 . 一种报价方便地用于包含其他类型的报价 .
"'"
和'"'
. 引号类型之间的最大区别是封闭的标识符引用替换为内部双引号,但不在单引号内 .One thing:
请注意, Heredoc 的结束标识符行必须不包含其他字符,但 semicolon (;) 除外 . 这尤其意味着标识符可能不是 indented ,并且在分号之前或之后可能没有任何 spaces 或 tabs .
Example:
单引号
指定字符串的最简单方法是将其用单引号括起来 . 单引号通常更快,内部引用的所有内容都被视为普通字符串 .
例:
双引号
在PHP中使用双引号以避免必须使用句点来分隔代码(注意:如果您不想在字符串中使用连接(
.
)运算符,请使用花括号{}
来包含变量) .例:
PHP中的单引号与双引号是否有性能优势?
是 . 使用单引号稍微快一些 .
PHP不会使用额外的处理来解释单引号内的内容 . 当你使用双引号时PHP必须解析以检查那里是否有任何变量 .
单引号字符串中没有解释变量 . 双引号字符串 .
此外,双引号字符串可以包含没有反斜杠的撇号,而单引号字符串可以包含未转义的引号 .
单引号字符串在运行时更快,因为它们不需要被解析 .
在PHP中,单引号文本被视为字符串值,双引号文本将通过替换和解析变量处理他们的 Value .
这里,双引号解析值,单引号被视为字符串值(不解析$ test变量 . )