引用静态 class 方法给定 class 名称作为 PHP5.5 中的字符串
Reference static class method given class name as string in PHP5.5
我有一个包含 class 名称的变量。
public $modelClass = 'common\models\Notecard';
那个 class 有一个静态方法。
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。
我有一个包含 class 名称的变量。
public $modelClass = 'common\models\Notecard';
那个 class 有一个静态方法。
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。