【问题标题】:Differences between echo, echo(), print and print() in PHP [duplicate]PHP中的echo,echo(),print和print()之间的区别[重复]
【发布时间】:2011-04-02 08:20:07
【问题描述】:

可能的重复:
How are echo and print different in PHP?
Is there any difference between ‘print’ and ‘echo’ in PHP?
What’s the difference of echo,print,print_r in PHP?

在 PHP 中有几种打印输出的方法;包括但不限于:

echo 'Hello';
echo ('Hello');
print 'Hello';
print ('Hello');

这四个有什么区别吗?另外,括号有什么区别吗?

【问题讨论】:

  • 为什么所有“重复”的答案也会导致“尽可能封闭的重复答案”?

标签: php printing echo


【解决方案1】:

两个区别:

print 有一个返回值(总是 1),echo 没有。因此print可以用作表达式。

echo 接受多个参数。所以你可以写echo $a, $b而不是echo $a . $b

关于括号:在我看来,它们只是错误。它们根本没有任何功能。你也可以写echo (((((((((($a))))))))));人们通常会因为无知而加上括号,认为print 是一个函数。此外,它增加了误解的机会。例如print("foo") && print("bar") 不打印foobar,因为PHP 将其解释为print(("foo") && print("bar"))。所以bar1 会被打印出来,即使它看起来不同。

【讨论】:

  • 我知道Python不是PHP,但是他们banned使用print 'something',现在你总是要使用print('something')加上括号。
  • 另见:ideone.com/LUOOG
  • 没有。它的确有所作为。即使它输出相同,带括号的版本 看起来 不同。括号和类似格式的函数使它看起来不同。如果我不停下来想一想,至少我会误以为它会输出foobar
  • 是的,你是对的,它输出同样的东西。也许我没有清楚地解释我的观点。我说的是代码的可理解性,而不是功能的可理解性。功能没有改变,这是正确的。
  • 虽然实际上有一种情况,但使用括号不仅会使代码难以理解,而且实际上会破坏事情。如果您有一个通过引用返回的函数return($a) 将不起作用,因为它不会返回对$a 的引用,而是表达式($a) 的结果,这显然是一个值,而不是一个引用。但这是题外话,因为我们正在谈论打印和回声^^