【发布时间】:2011-04-03 23:44:14
【问题描述】:
【问题讨论】:
-
他们不只是彼此的别名吗?您从哪里得到一个比另一个快的想法?
-
Symfony 的创始人 Fabien Potencier 的好回答 fabien.potencier.org/article/8/…
标签: php comparison performance printing echo
【问题讨论】:
标签: php comparison performance printing echo
打印有返回值,这是唯一的区别。
速度差异(如果有的话)是如此微不足道,以至于考虑这样的微优化是不值得的,而且绝对不值得更新任何旧代码以将打印切换为回声。如果这是您的目标,还有很多更好的方法可以加快您的网站速度。
【讨论】:
打印总是返回 1,这也可能是它变慢的原因
【讨论】:
echo 和 print 实际上(在技术上不是)相同的东西。两者之间的(几乎只有)区别在于print 将返回整数1,而echo 不返回任何内容。请记住,实际上两者都不是函数,而是语言构造。 echo 允许您在使用它时传递多个字符串,就像它是一个函数一样(例如,echo($var1, $var2, $var3))。
echo 也可以使用语法<?= $var1; ?>(代替<?php echo $var1; ?>)进行简写。
至于哪个更快,有许多在线资源试图回答这个问题。 PHP Benchmark 得出结论:“[i] 实际上,echo 和 print 函数服务于确切目的,因此在后端应用完全相同的代码。需要注意的一件小事是,在使用逗号分隔项目时使用 echo函数,项目运行速度稍快。”
这真的取决于您的喜好,因为速度上的差异(无论它们实际上是什么)都可以忽略不计。
【讨论】:
根据我的经验和知识,你错了。在循环高速公路和超文本中,print 比 echo 快。
我正在实施一个测试,显示print 和echo 之间的区别。
$start = microtime(1);
for($i = 0; $i < 100000; $i++)
echo "Hello world!";
echo "echo time: " . round(microtime(1) - $start, 5);
$start = microtime(1);
for($i = 0; $i < 100000; $i++)
print "Hello world!";
echo "print time: " . round(microtime(1) - $start, 5);
结果:
echo time: .09
print time: .04
另一个参考是phpbench,它表明了这一事实。
现在是时候调查一下为什么 print 比 echo 快了。当然,当您使用循环时,php 会检查 echo 是否有多个要打印的值,但 print 始终只能采用一个参数,并且不需要在循环中检查。同样,当有多个 echo bad 的值出现时,比如将它们转换为字符串并将它们流式传输,我相信在巨大的超文本中这些问题也会出现,因为你在打印之前强制 php 进行处理。但是在像打印这样的小工作中,只有一个小的字符串回显我很好(如果你考虑连接的话),因为它不会返回任何像打印这样的东西。
【讨论】: