Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中单引号字符串和双引号字符串的区别是什么?_Php_String_Syntax - Fatal编程技术网

PHP中单引号字符串和双引号字符串的区别是什么?

PHP中单引号字符串和双引号字符串的区别是什么?,php,string,syntax,Php,String,Syntax,我有点困惑,为什么在PHP中看到一些字符串放在单引号中,有时放在双引号中的代码 我只知道在.NET或C语言中,如果它在单引号中,这意味着它是一个字符,而不是字符串。单引号中的字符串没有解释变量。双引号字符串不起作用 此外,双引号字符串可以包含不带反斜杠的撇号,而单引号字符串可以包含不带反斜杠的引号 单引号字符串在运行时速度更快,因为它们不需要解析。两种封闭字符都是字符串。一种类型的报价可方便地用于包含另一种类型的报价“”和“。引号类型之间的最大区别在于,封闭的标识符引用被双引号内的标识符引用所取

我有点困惑,为什么在PHP中看到一些字符串放在单引号中,有时放在双引号中的代码


我只知道在.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}是”
    ,您可以将左大括号放在美元符号之前或之后。查看如何使用数组变量等

  • 字符串语法的工作原理类似于双引号字符串。它在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
    变量)。

    '
    单引号 指定字符串的最简单方法是用单引号将其括起来。单引号通常速度更快,并且里面引用的所有内容都被视为普通字符串

    示例:

    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文档