代码之家  ›  专栏  ›  技术社区  ›  Chaitanya

串联运算符

  •  2
  • Chaitanya  · 技术社区  · 14 年前

    <?php
      $x="Hi";
      $y=" There";
      $z = $x.$y;
      $a = "$x$y";
      echo "$z"."<br />"."$a";
    ?>
    

    $z 使用php提供的传统连接运算符并连接,反之,$a不使用,

    我的问题:

    1. 如果不使用串联运算符,是否会影响性能?

    2. 如果没有的话,为什么会有连接操作符。

    4 回复  |  直到 14 年前
        1
  •  3
  •   hbw    14 年前
    1. 只是有一点,因为PHP必须解析整个字符串来寻找变量,而使用串联,它只是将两个变量放在一起。所以有一个微小的性能冲击,但它不是显而易见的大多数事情。

    2. 连接变量要容易得多,比如 $_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.";
      
    3. 我不确定我是否完全理解您在这里提出的问题,但我可以说PHP从Perl中借用了很多东西,Perl的一个信条是“有多种方法可以做到这一点”

        2
  •  2
  •   Aaron Butacov    14 年前

    b。因为像这样的线条: echo 'Your Ip address is' . get_ip() . '.';

        3
  •  2
  •   Babiker    14 年前

    $someLongVarName ="Hi";
    $someLongVarName .=" there";
    

    $someLongVarName ="Hi";
    $someLongVarName = "$someLongVarName there";
    
        4
  •  0
  •   Justin Johnson    14 年前

    每种语言都有做同一件事的多种方法。灵活性在每种语言中都很重要,因为任何给定的方法在不同的情况下都可能比另一种更好。关于这一点,您唯一应该担心的是在您自己的代码中保持一致。