PHP中单引号字符串和双引号字符串的区别是什么?
我有点困惑,为什么在PHP中看到一些字符串放在单引号中,有时放在双引号中的代码PHP中单引号字符串和双引号字符串的区别是什么?,php,string,syntax,Php,String,Syntax,我有点困惑,为什么在PHP中看到一些字符串放在单引号中,有时放在双引号中的代码 我只知道在.NET或C语言中,如果它在单引号中,这意味着它是一个字符,而不是字符串。单引号中的字符串没有解释变量。双引号字符串不起作用 此外,双引号字符串可以包含不带反斜杠的撇号,而单引号字符串可以包含不带反斜杠的引号 单引号字符串在运行时速度更快,因为它们不需要解析。两种封闭字符都是字符串。一种类型的报价可方便地用于包含另一种类型的报价“”和“。引号类型之间的最大区别在于,封闭的标识符引用被双引号内的标识符引用所取
我只知道在.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中,
“我的名字”
和“我的名字”
都是字符串。您可以阅读更多关于它的内容
你应该知道的是
$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";
对于字符串的其他用法也是如此。不仅可以用两种方式指定,还可以用四种方式指定
\'
,要显示反斜杠,可以使用另一个反斜杠进行转义\
(是的,即使是单引号字符串也会被解析$type
,并且希望回送$types是“
”。它将查找变量$types
。要避免这种情况,请使用echo“{$type}是”
,您可以将左大括号放在美元符号之前或之后。查看如何使用数组变量等开头,单引号文本被视为字符串值,双引号文本将通过替换和处理变量值来解析变量
$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
变量)。'
单引号
指定字符串的最简单方法是用单引号将其括起来。单引号通常速度更快,并且里面引用的所有内容都被视为普通字符串
示例:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
“
双引号
在PHP中使用双引号可以避免使用句点分隔代码(注意:如果不想在字符串中使用串联(
)运算符,请使用大括号{}
来包含变量)
示例:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
PHP中单引号与双引号是否有性能优势?
是的。使用单引号稍微快一点
PHP不会使用额外的处理来解释单引号内的内容。当您使用双引号时,PHP必须解析以检查字符串中是否有任何变量。一件事:
请务必注意,结尾标识符为Heredoc的行不能包含任何其他字符,除了分号(;)。这尤其意味着标识符不能缩进,分号前后不能有空格或制表符
示例:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
$str=单引号、双引号、herdoc引号和nowdoc引号示例
有些人可能会说我有点离题,但不管怎样,这里是:
您不必选择,因为字符串的内容介于:
echo“游戏时间到了”;
或echo“游戏时间到了”;
如果您熟悉英文引号的用法以及撇号的正确字符,您可以使用双引号或单引号,因为这不再重要:
echo“游戏时间到了。”;
和echo“游戏时间到了。”;
当然,如果需要,您也可以添加变量。但不要忘记,它们只有在双引号中才会计算!在php中使用单引号和双引号的区别在于,如果我们在echo语句中使用单引号,那么它将被视为字符串……但如果我们在双引号中输入变量名称,那么它将输出ut该变量的值以及字符串。这里有一些使用变量的单引号和双引号的可能性
$world = "world";
"Hello '.$world.' ";
'hello ".$world."';
单引号字符串也使用更少的内存。在PHP中处理字符串的最快方法是使用单引号并使用.operator连接字符串和变量。hmmm,如果我错了,请纠正我,但PHP的基本语言是C对的?那么为什么字符串引号在PHP和C中有所不同?@rob waminal:PHP可以在C中实现,但它是不同的语言。PHP语言指定了这些语义。@Ribald-nowdoc语法不是更快吗?单引号字符串被解析为转义单引号和反斜杠。@Peter,你可能是对的,我从来没有真正深入研究过它。PHP文档