我有一個類名作為字符串變量(它實際上是一個雄辯的模型類名)class Base_controller{ public modelClassName = 'Product';}我想用參數調用這個模型的方法class Base_controller{ public modelClassName = 'Product'; public function index(){ $fields= 'id, name, price'; $this->modelClassName::select($fields)->get(); }}當我調用 index 函數時,出現錯誤:Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM) in ...這樣做的正確方法是什么?
2 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
將類屬性的值復制到一個普通變量中,然后使用變量函數調用語法。
class Base_controller{
public modelClassName = 'Product';
public function index(){
$fields= 'id, name, price';
$class = $this->modelClassName;
$class::select($fields)->get();
}
}

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
call_user_func如果你喜歡,你也可以使用。
public function index()
{
$fields = 'id, name, price';
call_user_func([$this->modelClassName, 'select'], $fields)->get();
}
- 2 回答
- 0 關注
- 270 瀏覽
添加回答
舉報
0/150
提交
取消