echo
和print
基本上是一样的(技术上不同)。两者之间(几乎)唯一的区别是print
将返回整数1
,而echo
则不返回任何值。请记住,它们实际上都不是函数,而是语言结构。当您使用echo
作为函数时,可以像传递多个字符串一样传递多个参数(例如echo($var1, $var2, $var3)
)。
您还可以使用语法<?= $var1; ?>
来缩写echo
(而不是<?php echo $var1; ?>
)。
至于哪个更快,有很多在线资源试图回答这个问题。PHP Benchmark得出结论:“实际上,echo和print函数具有完全相同的用途,因此在后台应用完全相同的代码。唯一需要注意的小事情是,在使用逗号分隔项目同时使用echo函数时,项目运行速度略快。”
这真的取决于您的个人偏好,因为速度上的差异(无论实际上是什么)都可以忽略不计。
打印总是返回1,这也可能是它速度较慢的原因。
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是否有多个值要打印,但始终可以只使用一个参数进行打印,并且不需要在循环中进行检查。此外,当echo有多个值时,会出现问题,例如将它们转换为字符串并流式传输它们,我确信在大型超文本中也会出现这些问题,因为您正在强制php在打印之前进行处理。但是在像打印这样的小作业中,只有一个小字符串echo是好的(如果您考虑连接),因为它不像print那样返回任何内容。