【问题标题】:Why some famous programs are always using print [closed]为什么一些著名的程序总是使用 print [关闭]
【发布时间】:2011-07-03 02:10:50
【问题描述】:

我在某处读过,现在不记得在哪里,echo 是一种比print 更有效的数据输出方式。

为什么许多著名的软件包和框架,如 WordPress 和 Drupal,都喜欢打印?这背后有什么特殊原因,还是只是一种习惯?

【问题讨论】:

  • 我不是 PHP 专家,所以我不知道您所说的这个 print 与 echo 建议是否是常识,但如果有很大差异,我会感到惊讶。您可能会发现 printf 的不同之处(我假设 PHP 支持这个函数),因为它比简单的 print 做的要多得多,它应该只在需要时使用。
  • 这很有趣。点赞 +1。
  • 是的,没错,很有趣。点个赞!
  • 我不知道为什么关闭了,但是,在这里。我开始时曾经使用打印,但后来就是这样。两者的主要区别:echo 'one', 'two';完全合法;打印“一”,“二”;引发解析错误。希望对您有所帮助。
  • 现在,通过以上内容,您会注意到多个 echo 语句用逗号简单分隔,这使得它们实际上比多个 echo 或 print 调用甚至使用“.”的连接更好。然后是可怕的内联函数,它们本身打印字符串。例如。打印 'line'.func().'Up';这将导致 func() 的输出出现在语句的其余部分之前。您可以将语句拆分,但使用逗号和 echo 可以省去所有麻烦。

标签: php wordpress drupal


【解决方案1】:

实际上,Echo 和 Print 根据它们的结构而有所不同。 Print 返回一个值,就像普通函数一样。但是尽管普遍认为,Print 不是一个函数,正如我们可以看到它不需要括号来工作(不要与 Printf 混淆)。 Print 和 Echo 实际上都称为语言结构,但这并不是说我们不能让 Print 像函数一样工作。

您可以在此处找到更多参考:

http://www.learnphponline.com/php-basics/php-echo-vs-print

虽然不完全完整。打印可以用作复杂结构的一部分,例如

($b) ? print “True” : print “False”;

而 Echo 不能。另外,如果你想使用错误输出(@print“Test”;)你不能使用 echo。 否则——很好的信息。

【讨论】:

  • 为什么是这一行 ($b) ?打印“真”:打印“假”;不能使用回声?
  • @zhua : 因为 Echo 没有返回值,而 print 有。
  • 你可以把echo放在左边就可以了。例如
    echo ($b) ? "True" : "False";
     还是一样的。但是,是的,在某些复杂的情况下,您需要两个不同的操作,您不能使用 echo.g。但是,是的,在某些复杂的情况下,您需要两个不同的操作,您不能使用 echo。
【解决方案2】:

PHP docs 中没有任何内容支持这一说法。但是,两者之间的关键区别在于echo 不返回值,而print 则返回。因此,有人可以提出echo 因此更有效率的论点。

查看PHP Benchmark,了解有关echoprint 和其他有趣比较的更多信息。

最后,这些事情归结为个人惯例。无论使用echo 而非print 所获得的效率与代码的其他区域相比都可能微不足道。

【讨论】:

  • 返回值区别是什么
  • @Itay,在两者之间有所不同——是的。在性能上有所不同,我不会得出这个结论。有一个关于存储返回值、帧堆栈等的参数。但我愿意相信在 PHP 的情况下,echoprint 的底层代码是相同的。特别是因为print 总是返回 1
【解决方案3】:

在性能测试中,我发现 PHP 中 printecho 的速度没有差异,因此它们可以互换。真的是个人喜好。在野外,我曾看到严格的 PHP 程序员坚持使用echo,而多语言程序员(如果这是一个短语)也使用任何一种。

【讨论】:

    【解决方案4】:

    因为您在喜欢谈论微优化的博客上阅读了这些内容。你应该不惜一切代价避免过早的优化,因为这不值得付出努力=>你应该用谷歌搜索http://en.wikipedia.org/wiki/Tony_Hoare的名言。当你遇到性能问题时,你应该只解决你唾手可得的成果,不要再浪费时间阅读这样的博客了。 PHP 的创建者给出了几个演示如何做到这一点 => http://www.archive.org/details/simple_is_hard

    到目前为止,这是一个相当老的视频,但如果你问我,它仍然很好。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2011-03-23
      • 2015-01-28
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2018-09-19
      • 2016-04-01
      • 1970-01-01
      相关资源
      最近更新 更多