这可能是一个愚蠢的问题,但它令我震惊,在这里我问。

<?php
  $x="Hi";
  $y=" There";
  $z = $x.$y;
  $a = "$x$y";
  echo "$z"."<br />"."$a";
?>
$z使用php和串联的传统串联运算符,相反$ a不这样做,

我的问题:

通过不使用串联运算符
  • ,会影响性能吗?
  • 如果不是这样,为什么根本没有串联运算符。
  • 为什么一种工作方式有两种实现方式?
  • 最佳答案

  • 仅需一点点,因为PHP必须解析整个字符串以查找变量,但是在进行串联时,它只是将两个变量拍在一起。因此,性能受到的影响很小,但是对于大多数情况而言,它并不明显。
  • 使用连接运算符将诸如$_SERVER['DOCUMENT_ROOT']之类的变量连接起来要容易得多(带引号,您必须将变量括在方括号中或删除数组索引中的单引号;加上它只会使字符串看起来很难看)。此外,串联运算符还为格式化提供了更大的灵活性。例如,您可以将一个长字符串文字分解为多行,然后将其不同部分连接起来:
    $blah = "This is a really really long string. I don't even know how " .
        "long it is, but it's really long. Like, longer than an eel " .
        "or even a boa constrictor. Wow.";
    

    您还可以使用串联运算符直接在字符串文字中包含函数的返回值(不能在双引号字符串中包含函数调用),如下所示:
    $blah = "This has a " . fn_call() . " result, which can't go in the quotes.";
    
  • 我不确定我是否完全理解您的要求,但是我可以说PHP是从Perl借来的很多东西,而Perl的口头禅是“有多种方法可以做到这一点”。
  • 关于php - 串联运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3041906/

    10-13 03:29