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