来自:http://web.archive.org/web/20090221144611/http : //faqts.com/knowledge_base/view.phtml/aid/1/fid/40
速度.两者之间存在差异,但在速度方面,它应与您使用的哪一个无关.如果你真的想要深入了解细节,那么回声会稍快一些,因为它没有设置返回值.
表达.print()
表现得像一个功能,你可以这样做:
$ret = print "Hello World"
; 而且$ret
会1
.这意味着print可以用作echo不能表达的更复杂表达式的一部分.PHP手册中的一个例子:
$b ? print "true" : print "false";
如果要在复杂表达式中使用print,它也是优先级表的一部分.它只是在优先列表的底部.只有","AND,OR和XOR较低.
参数(S).语法是:,
但AND
无效.这是有效的:OR
; 同样的:XOR
; (将括号放在这个简单的例子中是没有用的,因为没有像这样的单个术语的运算符优先级问题.)
因此,没有括号的echo可以采用多个参数,这些参数会被连接起来:
echo "and a ", 1, 2, 3; // comma-separated without parentheses echo ("and a 123"); // just one parameter with parentheses
echo expression [, expression[,
expression] ... ]
只能带一个参数:
print ("and a 123"); print "and a 123";
[print`的文档](http://www.php.net/manual/en/function.print.php)明确地反驳了这个答案:"`print`实际上并不是一个真正的函数(它是一种语言结构) )". (41认同)
Echo也可用于三元运算:echo($ b)?'真假'; (36认同)
@philjohn我很确定你的陈述等于:echo(($ b)?'true':'false'); 而不是:(echo($ b))?'真假'; 因此,回声不是三元运行中实际情况的一部分. (32认同)
为了使用`echo`制作一些不可行的东西:`$ b?print"true":die("false");` (4认同)
来自w3C:PHP print语句:print也是一种语言结构, (3认同)
你可以`echo(print('test'))`但你不能`print(echo('test'))` (2认同)
seanyboy.. 74
他们是:
print只接受一个参数,而echo可以有多个参数.
print返回值(1),因此可以用作表达式.
回声稍快.
小智.. 9
要添加上面的答案,虽然print只能接受一个参数,但它允许连接多个值,即:
$count = 5; print "This is " . $count . " values in " . $count/5 . " parameter";
这是1个参数中的5个值
来自:http://web.archive.org/web/20090221144611/http : //faqts.com/knowledge_base/view.phtml/aid/1/fid/40
速度.两者之间存在差异,但在速度方面,它应与您使用的哪一个无关.如果你真的想要深入了解细节,那么回声会稍快一些,因为它没有设置返回值.
表达.print()
表现得像一个功能,你可以这样做:
$ret = print "Hello World"
; 而且$ret
会1
.这意味着print可以用作echo不能表达的更复杂表达式的一部分.PHP手册中的一个例子:
$b ? print "true" : print "false";
如果要在复杂表达式中使用print,它也是优先级表的一部分.它只是在优先列表的底部.只有","AND,OR和XOR较低.
参数(S).语法是:,
但AND
无效.这是有效的:OR
; 同样的:XOR
; (将括号放在这个简单的例子中是没有用的,因为没有像这样的单个术语的运算符优先级问题.)
因此,没有括号的echo可以采用多个参数,这些参数会被连接起来:
echo "and a ", 1, 2, 3; // comma-separated without parentheses echo ("and a 123"); // just one parameter with parentheses
echo expression [, expression[,
expression] ... ]
只能带一个参数:
print ("and a 123"); print "and a 123";
他们是:
print只接受一个参数,而echo可以有多个参数.
print返回值(1),因此可以用作表达式.
回声稍快.
要添加上面的答案,虽然print只能接受一个参数,但它允许连接多个值,即:
$count = 5; print "This is " . $count . " values in " . $count/5 . " parameter";
这是1个参数中的5个值
我认为print()
比慢echo
.
我喜欢print()
只用于以下情况:
echo 'Doing some stuff... '; foo() and print("ok.\n") or print("error: " . getError() . ".\n");
正如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)