可能是重复问题:
参考: 比较 PHP 的 print 和 echo
在 PHP 中,这两个函数之间是否有任何主要和根本的区别?
来源: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
速度。虽然两者有区别,但就速度而言,使用哪个都应该无关紧要。echo 稍微快一点, 因为如果你确实想要深入了解,它不会设置返回值。
表达式。 print()
的行为类似于函数,因此您可以这样做:$ret = print "Hello World"
; 并且 $ret
将是 1。这意味着 print 可以作为更复杂表达式的一部分使用,而 echo 则不能。以下是 PHP 手册中的一个示例:
$b ? print "true" : print "false";
print也是运算符优先级表的一部分,如果要在复杂表达式中使用它,就需要这样做。尽管如此,它几乎位于优先级列表的底部。只有,
AND
OR
XOR
比它更低。
echo 表达式 [, 表达式[,
expression] ... ]
但是echo (expression, expression)
是无效的。
echo("howdy"),("partner")
是有效的;与之等效的是:echo
"howdy","partner"
;(在这个简单的例子中放括号没有任何作用,
因为像这样的单个术语不存在运算符优先级问题。)因此,没有括号的echo可以接受多个参数,并将它们连接起来。
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
只能接受一个参数:
print ("and a 123");
print "and a 123";
它们是:
我认为print()
比echo
慢。
我只喜欢在以下情况下使用print()
:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
除了以上的回答,虽然print只能接受一个参数,但它允许将多个值进行拼接,例如:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
如PHP.net手册所建议的那样,请阅读这个讨论。
一个主要的区别是echo
可以带多个参数进行输出。例如:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
如果您想评估输出语句的结果(如下所示),请使用print
。如果不需要,请使用echo
。
$res = print('test');
var_dump($res); //bool(true)
print
函数不是总是返回1吗?此外,什么时候和为什么需要测试确保某个东西被打印出来了呢?那根本就不需要,永远都不需要!说实话,print
函数是没用的,应该换成 ECHO
函数! - Solomon Closson
echo
完成的操作:$b ? print "true" : die("false");
。 - Brilliandecho(print('test'))
,但是你不能使用print(echo('test'))
。 - vdegenne