Was ist der Unterschied zwischen Zeichenfolgen in einfachen und doppelten Anführungszeichen in PHP?
P粉773659687
P粉773659687 2023-08-23 20:46:33
0
2
632

Ich bin etwas verwirrt darüber, warum ich Code in PHP sehe, in dem Zeichenfolgen in einfache Anführungszeichen und manchmal in doppelte Anführungszeichen gesetzt werden.

Ich weiß nur, dass es sich in .NET oder C, wenn es in einfachen Anführungszeichen steht, um ein Zeichen und nicht um eine Zeichenfolge handelt.

P粉773659687
P粉773659687

Antworte allen (2)
P粉458725040

事物在双引号中计算,但不在单引号中计算:

$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.
    P粉323374878

    可以指定

    PHP 字符串不仅仅是两种方式,而是四种方式。

    1. 单一带引号的字符串将几乎完全“按原样”显示内容。变量和大多数转义序列将不会被解释。例外的是,要显示文字单引号,您可以使用反斜杠\'对其进行转义,而要显示反斜杠,您可以使用另一个反斜杠\\ code> (所以是的,即使是单引号字符串也会被解析)。
    2. 双引号字符串将显示大量转义序列(包括一些正则表达式),并且将评估字符串中的变量。这里重要的一点是您可以使用大括号来隔离要评估的变量的名称。例如,假设您有变量$type并且您想要回显“The $types are”。这将查找变量$types。要解决此问题,请使用echo "The {$type} are"。看看字符串解析了解如何使用数组变量等。
    3. Heredoc字符串语法的工作方式类似于双引号字符串。它以开头。在该运算符之后,提供一个标识符,然后提供一个换行符。接下来是字符串本身,然后再次使用相同的标识符来结束引用。您不需要在此语法中转义引号。
    4. Nowdoc(自 PHP 5.3.0 起)字符串语法的工作原理本质上类似于单引号字符串。不同之处在于,甚至不需要转义单引号或反斜杠。 nowdoc 使用与此处文档相同的序列进行标识,但后面的标识符用单引号括起来,例如nowdoc 中不进行解析。

    注释:单引号内的单引号和双引号内的双引号必须转义:

    $string = 'He said "What\'s up?"'; $string = "He said \"What's up?\"";

    速度:
    没有区别
    请阅读可信文章一位 PHP 核心开发人员谈到了这个问题。说到测试,我们永远不应该认为它们是理所当然的。必须明白,编写可信的测试,特别是解释其结果需要大量的知识和经验。这意味着大多数测试都是假的。例如,在这样的代码中

    for($i=0;$i<100000;$i++) { 'string'; }

    带引号的字符串与整个脚本一起仅被解析一次,然后被转换为操作码。然后它被执行一百万次。所以它测量除了解析之外的任何东西。这只是冰山一角。对于这样的纳米基准,几乎不可能创建一个不会被某些干扰性副作用破坏的可靠测试。

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!