什么是php函数默认返回?

use*_*021 71 php variables language-design function

如果我没有明确地返回任何内容,那么php函数究竟返回了什么?

function foo() {}
Run Code Online (Sandbox Code Playgroud)
  1. 它是什么类型的?

  2. 它有什么价值?

  3. 如何使用===完全测试?

  4. 这是从php4改为php5吗?

  5. 有没有之间的差异function foo() {}function foo() { return; }

(我不是问如何测试它if (foo() !=0) ...)

Pat*_*and 99

  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. 不.

您可以通过以下方式尝试:

$x = foo();
var_dump($x);
Run Code Online (Sandbox Code Playgroud)


Pau*_*xon 38

不从PHP函数返回值具有与返回null的函数相同的语义.

function foo() {}

$x=foo();

echo gettype($x)."\n";
echo isset($x)?"true\n":"false\n";
echo is_null($x)?"true\n":"false\n";
Run Code Online (Sandbox Code Playgroud)

这将输出

NULL
false
true
Run Code Online (Sandbox Code Playgroud)

如果替换foo,则会得到相同的结果

function foo() {return null;}
Run Code Online (Sandbox Code Playgroud)

从php4到php5到php7的这种行为没有任何变化(我只是测试了!)