我想寫一個條件,我想知道我的函數是否需要返回值或它可以作爲一個過程執行。基本上它應該看起來像:有沒有辦法檢查函數是否需要返回值時調用
foo($x) {
$x++;
echo $x;
if(is_return_needed()) {
return $x;
}
}
其中is_return_needed()是條件,如果需要返回值。
它應該如何工作:
echo foo(50); // should print AND return 51
bar(foo(50)); // should print AND return 51 to bar() function
foo(50); // should only print the value, because the returned value will not be used
請不要告訴我沒有理由這樣做。我知道我可以發送一個額外的布爾參數給函數,這將是條件,但是有沒有更好的方法來實現這一點?
爲什麼不在任何情況下都返回$ x? – csupnig
的確,如果不使用返回值,它不會對代碼造成任何問題。做一些奇怪的上下文檢查肯定會減慢你的代碼。 – Zefiryn
,如果你真的想要這樣的東西,只要做:'foo($ x,$ return_needed = false){... return($ return_needed)? $ x:null; }',但正如@ Zefiryn所說,這只是沒關係...... – giorgio