为什么核心使用打印而不是回显?


24

我在某个地方读过书,但我不记得在哪里,那echo是一种更有效的输出数据的方式print

为什么Drupal核心使用print这么多?这背后有什么特殊原因吗?


1
旁注:print将始终返回1作为值,echo将不返回任何值。我想这在某些情况下可能有用。
巴特

可能是哪种情况?
jayarjo 2011年

我也想知道!好问题!
2011年

Answers:


25

echo仅在学术环境中更快。差异非常小。我刚刚做了一个快速基准测试:从具有2000个以上节点的表中获取一行的时间为1个单位。

为了改善1个单位,我需要用替换大约3.700.000(超过3百万个)print语句echo。换句话说,如果您想提高性能,这几乎不是开始的地方。

可见,print可以在更广泛的情况下使用echo,第一个具有一些优点。它给您三个选择:

  • 一律使用 print
  • echo尽可能使用并回退print
  • echo始终使用并重构代码(如果echo无法使用)以使用它

Drupal在第一个上默认。

要回答关于为什么选择它的实际问题:并非如此。它只是以这种方式增长。


您能否提供一个示例,说明何时无法使用回声?现在只是我无法想象。
jayarjo 2011年

6
最明显的是if (! print some_method() ) {print some_other_method()}。由于print如果实际打印了某些内容,则返回TRUE。回声什么也没返回,这就是为什么它也更快。您将看到的另一个示例是return print $somevalue返回状态的方法的末尾。
berkes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.