2013-04-16 143 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' 

我所提供的功能,你會得到,由於函數返回默認爲空,如果沒有回報是最好的..

相關問題