Answers:
PHP字符串不仅可以通过两种方式指定,还可以通过四种方式指定。
\'
,而要显示反斜杠,则可以使用另一个反斜杠对其进行转义\\
(因此,即使对单引号的字符串也进行了解析)。$type
并且想要echo "The $types are"
。那将寻找变量$types
。要解决此问题,echo "The {$type}s are"
您可以将左括号放在美元符号之前或之后。看一看字符串解析,看看如何使用数组变量等。<<<
。在此运算符之后,提供了一个标识符,然后提供了换行符。字符串本身紧随其后,然后再次使用相同的标识符关闭引号。您无需使用此语法对引号进行转义。<<<
顺序与Heredocs所用的序列相同,但是其后的标识符用单引号引起来,例如<<<'EOT'
。nowdoc不进行任何解析。注意:必须对 单引号内的单引号和双引号内的双引号进行转义:
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
速度:
我不会过多地强调单引号比双引号更快。在某些情况下,它们可能更快。这是一篇文章,说明自PHP 4.3起,单引号和双引号基本上一样快的一种方式(Useless Optimizations
朝底部,第一节C
)。此外,此基准测试页面具有单引号与双引号的比较。大多数比较是相同的。有一个比较,双引号比单引号慢。
\n
,PHP
代码中的其他任何内容都用单引号引起来。
"
双引号的缓慢性几乎已成过去。如今,除极端情况外,更新已使双引号的处理速度变得如此之快。
事物用双引号而不是单引号进行评估:
$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.
$mailbody = 'I want a line break:\nDone.';
保持\n
生命。而:$mailbody = "I want a line break:\nDone.";
将解析换行符。
$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
字符序列$testWithAsciiAndUtf8Characters
被转换为带有真实字母的字符串。
'
单引号指定字符串的最简单方法是将其用单引号引起来。单引号通常更快,并且内部所有引用均视为纯字符串。
例:
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"
均为字符串。您可以在PHP手册中阅读有关它的更多信息。
你应该知道的是
$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
变量)。
一样东西:
请务必注意,带有Heredoc结束标识符的行除分号(;)外,不得包含其他任何字符。特别是这意味着标识符不能缩进,分号之前或之后可能没有空格或制表符。
例:
$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.');
${variablename}
。