当我有这样的函数时:
public function getResult() {
return;
}
它与返回 null 完全相同吗?如果我这样做:
is_null($this->getResult());
这会导致真的吗?
就运行时行为而言,不,没有。所有函数都隐式返回一个NULL
,没有值的return
(所以return;
)会产生一个NULL
返回值。
如果在 PHP 7.1+ 中使用 : void
返回类型声明,则禁止使用 return NULL;
(而不是 return;
),但这实际上只是一个编码样式的限制。函数调用总是在 PHP 中产生一些值,因此var_dump((function (): void {})());
输出NULL
。
根据上述描述,以下表达式
is_null($this->getResult());
将计算为 true,因为上面提到的代码片段中的函数返回 void。