我有這樣一類(這是一個抽象的示例):PHP:功能:允許不大於x的參數
class Example(){
function test($param1,$param2,$param3=NULL){ //param3 is optional
//stuff
}
}
該功能被稱爲動態(從URL,/示例/測試/一個/ b /將調用實施例::測試(A,b))
if(is_callable(array($class, $funcname)))
call_user_func_array(array($class, $funcname),$params);
/示例/測試/是不允許的,因爲缺少的參數的,(將返回404)
/示例/測試/一個/也是不允許的
/示例/測試/ A/B /被允許,因爲$參數3是可選
/示例/測試/ A/B/C /被允許
BUT:
/示例/測試/ a/b/c/d /也會調用該函數,因爲PHP只是忽略了第四個參數。
由於func是動態調用的,因此腳本在調用函數之前不知道允許多少個參數。但是如果參數太多,我需要腳本返回一個404錯誤。我無法找到找到最大值的方法。在實際調用函數之前,參數的數量已經減少。
這一個工程:
function test($param1,$param2,$param3=NULL,$error=NULL){ //param3 is optional;
if(isset($error))$this->getErrorController()->notFoundHandler(); //will throw a 404 if $error is set and stop the script.
//stuff
}
有沒有更好的方式來做到這一點?
Eliasdx,請給予好評和接受的答案。這使得人們更有可能提供幫助。 – webbiedave 2010-10-04 17:33:13