不知道是不是我的措辭問題的權利,但如果這樣做的更簡單的(短)的方式基本上是我想知道的是:動態調用PHP函數?
switch($type) {
case 'select': $echo = $this->__jw_select($args); break;
case 'checkbox': $echo = $this->__jw_checkbox($args); break;
case 'radio': $echo = $this->__jw_radio($args); break;
case 'input': $echo = $this->__jw_input($args); break;
case 'textarea': $echo = $this->__jw_textarea($args); break;
default: return null;
}
有什麼辦法,我可以做些什麼像$echo = $this->__jw_{$type}($args);
?我試過這段代碼,當然,它失敗了。有任何想法嗎?
沒有犯罪託姆你也應該注意,這不是一個很好的解決方案。 – DarthVader 2012-02-01 06:27:56
如果您打算這樣做,我至少會使用一個有效函數名稱的白名單,並在實際調用函數之前檢查它是否存在。即:if(in_array($ field,array('input','radio',...){...} – Steven 2012-02-01 06:38:46
老實說它並不重要 - 那個if的'else'通常是一些東西沿着「觸發錯誤」的路線......如果方法不存在,反正會發生,爲方法名添加一個唯一的前綴可以確保你不會碰到不應該被調用的東西(假設你 – Amber 2012-02-01 06:59:50