226

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

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

4

5 回答 5

294

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

  1. 速度。两者之间存在差异,但在速度方面,您使用哪一个应该无关紧要。echo 稍微快一点,因为如果您真的想深入了解细节,它不会设置返回值。

  2. 表达。print()表现得像一个函数,你可以这样做 $ret = print "Hello World":并且$ret1。这意味着 print 可以用作 echo 不能的更复杂表达式的一部分。PHP手册中的一个例子:

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

print 也是优先表的一部分,如果它要在复杂的表达式中使用,它需要它。它只是在优先级列表的底部。只是, AND OR XOR较低。

  1. 参数)。语法是:echo expression [, expression[, 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";
于 2008-10-24T16:27:56.393 回答
75

他们是:

  • print 只需要一个参数,而 echo 可以有多个参数。
  • print 返回一个值 (1),因此可以用作表达式。
  • echo 稍微快一点。
于 2008-10-24T16:29:33.380 回答
9

为了补充上面的答案,虽然 print 只能采用一个参数,但它允许连接多个值,即:

$count = 5;

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

这是 1 个参数中的 5 个值

于 2009-01-15T16:47:45.433 回答
9

我认为print()echo.

我喜欢print()仅用于以下情况:

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");
于 2009-03-19T18:04:12.017 回答
6

正如 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)
于 2008-10-24T16:28:54.333 回答