2013-04-16 102 views
2

有没有办法在PHP中使用反射或其他方法来做到这一点?如何确定函数是否不返回任何内容?

function a{ 
    return null; 
} 

function b{ 

} 


$a = a(); // null 
$b = b(); // null :(
+2

函数默认返回'null',所以不,不是真的。 – Blender

+1

出于兴趣,你什么时候需要这个? – Jim

+0

一个插件系统。我想知道钩子是否代表过滤器或事件(事件不应该返回任何东西)。我不想为它们创建单独的函数:P –

回答

0

头脑不回它null,因为它肯定会显示没有结果。

,而不是试图里面添加echo语句具有价值,但仍然在你还是要用echo输出结果这两种情况下检查或return吧.....

也可参考PHP。 NET如何创建一个USER DEFINE FUNCTION

+0

是否有投票下降的理由? –

+0

我没有看到这个答案downvote的原因..这是合乎逻辑的,我猜测的唯一原因是因为你已经包含一个'echo',它不会返回任何内容,只是给出输出;所以该函数将返回一个null,即使知道输出是给定的 –

3

如果你没有明确地返回一些东西,那么默认情况下函数将返回null。这就是函数如何在PHP中工作,并且无法找出函数是否具有返回值。

虽然这不应该是一个问题。如果函数返回null,通常意味着什么都没有完成,或者没有找到任何东西等等。

2

当您定义自己的函数时,您应该知道自己是否返回任何内容。

无论如何。除非你已经覆盖了回报函数返回默认为空

function A(){ 
} 

function B(){ 
return 'Test'; 
} 

function C(){ 
return; 
} 

function CheckValidation ($Var){ 
    if (is_null($Var)){ 
     return 'Sample Is Null'; 
    }else{ 
     return 'Sample Is Not Null and returned a value!'; 
    } 
} 

echo CheckValidation(A()); // Will output: 'Sample Is Null' 
echo CheckValidation(B()); // Will output: 'Sample Is Not Null and has returned a value! 
echo CheckValidation(C()); // Will output: 'Sample Is Null' 

我所提供的功能,你会得到,由于函数返回默认为空,如果没有回报是最好的..

相关问题