我一直想知道如何以乾淨和簡潔的方式高效地檢查我的所有參數。 我想出了:檢查所有函數參數
function fooBar($myArg, $mySecondArg, $myOptionnalArg = "defaultValue"){
if(!isset($myArg, $mySecondArg, $myOptionnalArg){
die(__FUNCTION__ . ":missing parameter");
}
if(empty($myArg, $mySecondArg, $myOptionnalArg){
die(__FUNCTION__ . ":empty parameter");
}
//Do stuff
}
我在尋找什麼是更喜歡:
function fooBar($myArg, $mySecondArg, $myOptionnalArg = "defaultValue"){
$argArray = func_get_args();
foreach($argArray as $a){
if(empty($a)){
die(__FUNCTION__.":".get_arg_name($a)."is empty");
}
if(!isset($a)){
die(__FUNCTION__.":".get_arg_name($a)."is unset");
}
}
//Do stuff
}
至極不起作用,因爲get_arg_name();
是純粹的小說,並func_get_args();
返回實際參數,而不是原型中定義的那些。
有人能給我一個提示嗎?任何其他良好/乾淨的方式來實現這一點也是受歡迎的。 感謝
難道你不覺得你應該確保參數是有效的* *之前調用與所提到的參數的函數?函數應該儘可能少地做些工作,儘可能保持代碼的乾淨和解耦。只要你想檢查參數是否符合某些方案(不管它們是空的還是未設置等),就可以從函數內部找到某些東西。您可以鍵入提示參數以使您的函數更具類型感知能力,但在調用函數之前而不是之後檢查變量。 –
@NB,驗證前提條件相當普遍,至少在「外殼功能」中是如此。 – goat
如果我的習慣不好或者不好,請嘮叨。但是,如果他們沒有得到他們期望的參數,我習慣於發生崩潰。寫'sum(「字符串」,「anothertring」);'不應該在我看來是可能的。我正在尋找一種方法來避免這種情況。 –