引用静态类方法,在 PHP5.5 中将类名作为字符串



>我有一个保存类名的变量。

public $modelClass = 'commonmodelsNotecard';

该类具有静态方法。

public static function do_something() { ... }

鉴于这些信息,我想调用静态函数。对于非静态函数,我可以执行以下操作:

$model_name = $this->modelClass;
$model = new $model_name();
$model->do_something_else();

是的,这很容易:您可以从实例中调用函数,例如

$model_name = $this->modelClass;
$model = new $model_name();
$model::do_something();

或使用 call_user_func()

call_user_func([$modelClass, 'do_something']);

您可以使用$model_name::do_something_else() .

class foo {
    public static function bar() {
        echo "Called bar";
    }
}
$fname = "foo";
$fname::bar();

输出Called bar

适用于 php7。

最新更新