可能的重复: 参考:比较PHP的打印和回显

在PHP中,这两个函数之间有什么主要和基本的区别吗?


当前回答

我认为print()比echo慢。

我喜欢只在以下情况下使用print():

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");

其他回答

我认为print()比echo慢。

我喜欢只在以下情况下使用print():

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");

来自: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

速度。这两者之间是有区别的,但在速度方面是有区别的 应该与你使用哪个无关。Echo稍微快一点 因为它没有设置返回值如果你真的想要 细节。 表达式。Print()的行为类似于一个函数,你可以这样做: $ret =打印“Hello World”;$ret = 1。这意味着打印 可以用作更复杂表达式的一部分,而echo不能。一个 PHP手册中的例子:

$b ? print "true" : print "false";

Print也是优先表的一部分,如果它 将在复杂表达式中使用。它就在底部 优先级列表。只有AND或XOR更低。

参数(s)。语法为:echo expression[, expression[, 表达式]…但是echo (expression, expression)无效。 这将是有效的:echo ("howdy"),("partner");同:echo “你好”、“伙伴”;(把括号放在这个简单的例子中 服务 没有目的,因为没有操作符优先级问题 像这样的术语。)

不带括号的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";

正如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只能接受一个参数,但它将允许多个值的连接,即:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

这是一个参数中的5个值

它们是:

Print只接受一个参数,而echo可以有多个参数。 Print返回一个值(1),因此可以用作表达式。 Echo稍微快一点。