我有一个包含类名的变量。
public $modelClass = 'common\models\Notecard';
该类有一个静态方法。
public static function do_something() { ... }
鉴于此信息,我想调用静态函数。对于非静态函数,我可以执行以下操作:
$model_name = $this->modelClass;
$model = new $model_name();
$model->do_something_else();
答案 0 :(得分:1)
是的,这很简单: 您可以直接从您的实例调用该函数,例如
$model_name = $this->modelClass;
$model = new $model_name();
$model::do_something();
或使用call_user_func()
call_user_func([$modelClass, 'do_something']);
答案 1 :(得分:0)
您可以使用$model_name::do_something_else()
。
class foo {
public static function bar() {
echo "Called bar";
}
}
$fname = "foo";
$fname::bar();
输出Called bar
适用于php7。