检查PHP函数是返回null还是空

时间:2009-11-27 16:55:49

标签: php return-value

我有这段代码

 $return = $ep->$method($params);
 if ($return === null) {
  throw new Exception('Endpoint has no return value');
 }
 return $return;

有没有办法区分返回null的方法和不返回任何内容的方法?

5 个答案:

答案 0 :(得分:32)

这是不可能的。如果未设置返回值,则函数将自动返回null。

答案 1 :(得分:1)

如果函数没有返回任何内容,则不应测试它的返回值。您应该知道哪些函数可以返回某些内容或者根本不返回内容 - 即使您不是编写它们的人。

答案 2 :(得分:0)

你可以让函数返回另一个值吗?布尔值为true,并检查该值或null。

答案 3 :(得分:0)

使用PHP7的返回类型声明功能:

function a(): void {
    return null; // :(
}

function b(): void {
    // :)
}

function c(): void {
    return; // :)
}

答案 4 :(得分:0)

您可以执行以下操作:

ob_start();

echo trim($ep->$method($params));
$output = ob_get_contents();

ob_end_clean();

if (empty($output)) {
  throw new Exception('Endpoint has no return value');
}
return $return;