2009-11-27 39 views
10

我有这样的代码检查PHP函数返回空值或没有

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

有没有办法返回null的方法,并且不返回任何的方法来区分?

+0

这是不工作'如果($回报=== “”){}'? – KeepMove 2015-02-04 08:50:23

回答

29

这是不可能的。当没有设置返回值时,函数自动返回null。

+3

没有什么不可能:) – Pasta 2009-11-27 17:04:20

+31

对不起,正确的答案是。是的,您可以修改和重新编译PHP源代码。 :P – William 2009-11-27 17:05:37

0

你可以让函数返回另一个值吗?布尔真实可能,并检查它或null。

+0

我并不总是成为编写 – 2009-11-27 19:44:51

1

如果函数没有返回任何东西,那么你不应该测试它的返回值。你应该知道哪些函数有望返回什么或什么都不返回 - 即使你不是写它们的人。

+1

函数的人。通常,是的,但在这种情况下,函数是动态查找的。 – 2010-12-29 12:51:09

+0

那么根据其他答案和提供的信息,我预见到的唯一解决方案是PHP解析它自己的代码并在函数声明中寻找“return”关键字。 – Rolf 2010-12-29 17:16:04

0

随着PHP7 ’的返回类型声明功能:

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

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

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