回显和打印在 PHP 中有何不同


How are echo and print different in PHP?

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

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

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

  1. 速度。 两者之间有区别,但速度方面使用哪一个应该无关紧要。 回声稍快因为它没有设置返回值,如果你真的想下降到细节。

  2. 表达。 print()的行为类似于函数,因为您可以执行以下操作: $ret = print "Hello World" ;$ret将是1. 这意味着打印可以用作 echo 不能使用的更复杂的表达式的一部分。 一PHP 手册中的示例:

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

打印也是优先级表的一部分,如果它需要将在复杂表达式中使用。它就在底部不过的优先级列表。 只有, 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";
它们是

  • 打印只接受一个参数,而 echo 可以有多个参数。
  • print 返回一个值 (1),因此可以用作表达式。
  • 回声稍快。

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

$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)