回答(11)
2 years ago
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相同的 <<< 序列标识,但后面的标识符用单引号括起来,例如: <<
Speed:
我不会过分强调单引号比双引号更快 . 在某些情况下,它们可能更快 . 这是一篇文章explaining one manner in which single and double quotes are essentially equally fast since PHP 4.3( Useless Optimizations 在底部, C 部分) . 此外,这benchmarks page有单一与双引号比较 . 大多数比较是相同的 . 有一个比较,其中双引号比单引号慢 .
2 years ago
也许我有点晚了,有点偏离主题,但无论如何......
你之间的内容是:'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.');
2 years ago
事情用双引号评估,但不是单引号:
$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.
2 years ago
在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";
对于其他使用的字符串也是如此 .
2 years ago
single,double,heredoc和nowdoc引号的示例
$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 = <<
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
2 years ago
两种封闭的字符都是字符串 . 一种报价方便地用于包含其他类型的报价 . "'" 和 '"' . 引号类型之间的最大区别是封闭的标识符引用替换为内部双引号,但不在单引号内 .
2 years ago
One thing:
请注意, Heredoc 的结束标识符行必须不包含其他字符,但 semicolon (;) 除外 . 这尤其意味着标识符可能不是 indented ,并且在分号之前或之后可能没有任何 spaces 或 tabs .
Example:
$str = <<
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
2 years ago
单引号
指定字符串的最简单方法是将其用单引号括起来 . 单引号通常更快,内部引用的所有内容都被视为普通字符串 .
例:
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必须解析以检查那里是否有任何变量 .
2 years ago
单引号字符串中没有解释变量 . 双引号字符串 .
此外,双引号字符串可以包含没有反斜杠的撇号,而单引号字符串可以包含未转义的引号 .
单引号字符串在运行时更快,因为它们不需要被解析 .
2 years ago
在PHP中,单引号文本被视为字符串值,双引号文本将通过替换和解析变量处理他们的 Value .
$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变量 . )
2 years ago
$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