echo
和print
实际上(在技术上)不是一回事。两者之间的差异(几乎是唯一的)是print
将返回整数1
,而echo
则不返回任何内容。请记住,它们实际上都不是函数,而是语言结构。 echo
允许您在使用时传递多个字符串,就好像它是一个函数(例如,echo($var1, $var2, $var3)
)。
echo
也可以通过使用语法<?= $var1; ?>
(代替<?php echo $var1; ?>
)来缩短。
至于哪个更快,有许多在线资源试图回答这个问题。 PHP Benchmark得出结论:“[i] n现实中回声和打印功能用于确切目的,因此在后端中应用完全相同的代码。需要注意的一件小事是,当使用逗号分隔项目时使用echo函数,物品运行得稍快。“
这将真正归结为您的偏好,因为速度的差异(无论它们实际是什么)都可以忽略不计。
打印始终返回1,这也可能是它变慢的原因
打印有返回值,这是唯一的区别。
速度差异(如果有的话)是如此微不足道,以至于不值得考虑像这样的微优化,并且绝对不值得更新任何旧代码来将打印切换到回声。如果这是您的目标,那么有更好的方法可以加快您的网站速度。
差异在这里细分:PHP Performance: Echo & Print
根据我的经验和知识,你错了。 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总是只能打一个参数而不需要在循环中检查它。当有多个值的回声时,糟糕的事情就会发生,比如将它们转换成字符串并将它们串流,我相信在巨大的超文本中,这些问题也会因为你在打印之前强迫php处理而产生。但是在打印这样的小作业中,只有一个小字符串回显我好(如果考虑连接),因为它不会返回任何类似打印的内容。