猿问

PHP 5.6 使用类名作为变量字符串调用多个类方法

我有一个类名作为字符串变量(它实际上是一个雄辩的模型类名)


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 ...

这样做的正确方法是什么?


神不在的星期二
浏览 234回答 2
2回答

莫回无

将类属性的值复制到一个普通变量中,然后使用变量函数调用语法。class Base_controller{    public modelClassName = 'Product';    public function index(){        $fields= 'id, name, price';        $class = $this->modelClassName;        $class::select($fields)->get();    }}

红颜莎娜

call_user_func如果你喜欢,你也可以使用。public function index(){    $fields = 'id, name, price';    call_user_func([$this->modelClassName, 'select'], $fields)->get();}
随时随地看视频慕课网APP
我要回答