通过替换更好地在PHP中回声。经过 ,
如何在PHP中更好地回声?有了这个简单的技巧,避免在最后一次调节中使用大量内存。

你可以在这个衬里找到多少改进?

回声 ("this ".$will." be displayed.");

没有echo的括号

第一个,可能是最明显的,是无用的括号。这 回声 is a ‘语言结构’,AKA一种特殊的PHP功能:等等,它就不了’t需要任何括号。夹杂物,返回或打印也是如此。上面的此代码与:

回声 "this ".$will." be displayed.";

即使两个额外的令牌对PHP表示一些额外的工作,括号在此处没有影响。在其他罕见情况下可能感受到括号的影响,其中括号将迫使结果由值传递,而不是作为参考,或者如果回声呼叫后跟其他操作员。

return (&$x); // always returns a value, not a reference
include('my_file.php') || print("error loading"): // always produce an error and an message.

这段代码中的主要效果是使读者觉得‘echo’是某种功能。它掩盖了回声接受任意数量的参数。实际上,括号中不可能以下:

回声 ($a, $b, $c); // syntax error

echo $a, $b, $c; // but this works

不需要连接

与Echo的多个参数很少使用,这是一个人可以在PHP中更好地回声的地方。级联实际上是无用的。 PHP如何处理这条线?

回声 "this ".$will." be displayed.";

PHP找到了‘echo’因此,它理解将显示以下表达式,将其发送到输出。然后,它找到了连接:要处理它,PHP将三个字符串所需的内存分配在一起(这里,4 + strlen($ Will)+ 14),然后将来自字符串/变量的值复制到新的内存位置。然后,它将整个结果赋予回声。在Snap中,这条线在最后一刻,脚本所需的内存量增加了一倍。

另一方面,当将字符串提供单独的参数时,Echo将立即将它们发送到输出,而无需任何额外的内存分配。

回声 "this ", $will, " be displayed.";

诸如以下的级联,这也是如此:

回声 "this $will be displayed.";

比印刷更好的回声?

您可以通过使用echo作为多参数函数轻松地保存一些或多个内存,并避免最后分钟连接。这可能尤其如此,模板系统尤其如此,该系统沿途收集内容的碎片,最后将其输出一体;迟到也是如此,如新行:

回声 $message."\n"; // memory += strlen($message) + 1

这也可能是回声的值得注意的优势: 打印 is a 语言结构 just like echo, but will only accept one argument, thus, requiring the concatenation or several calls.

是对多个参数回声,否打印和括号!

One thought on “如何在PHP中更好地回声

  1. pingback: 更好的php回声 - exakat

评论被关闭。