为什么print返回(int)1?

Gus*_*ooL 12 php

我知道echo()print()做同样的事情.但是print的返回值为 (int) 1.

问题是:

  1. 为什么它总是返回(int)1?
  2. 我们可以用return(int)1做什么?

mar*_*rio 9

print是一个函数,可以在表达式中使用,而echo语言结构只能在行的开头使用.

 echo print(print(print(print(123)))), print(4);
Run Code Online (Sandbox Code Playgroud)

将print作为函数提供的真实用例是允许它在表达式中使用.例如作为调试功能:

 if (($a == $b) and print("It's true") and $c) {
Run Code Online (Sandbox Code Playgroud)

甚至

 return TRUE and print("right");
Run Code Online (Sandbox Code Playgroud)

  • "print()实际上并不是一个真正的函数(它是一种语言结构)" - [PHP手册](http://php.net/manual/en/function.print.php) (7认同)

Seb*_*olm 6

为什么它总是返回(int)1?

最有可能表示成功,因此您可以将其解释为价值TRUE.

我们可以用return(int)1做什么?

在将来的代码中,而不是做

$i++;
Run Code Online (Sandbox Code Playgroud)

你可以做

$i = $i + print("Hello World!\n");
Run Code Online (Sandbox Code Playgroud)

(可能会产生轻微的副作用.)

  • 为什么在世界上你想要用打印结果增加变量? (3认同)
  • 我会去$ i + = print('bohaaa!'); (2认同)