Yii2 从变量动态调用模型中的 PHP 函数

Yii2 call PHP function in model dynamically from variable

是否可以通过变量动态调用模型函数?

$model = $request['model'];
$action = $request['action'];

我里面有一些模型和几个函数。现在我想调用一个基于变量 $model 和 $action 的模型函数。在这种情况下,我需要根据请求动态调用模型函数。

对于静态函数

假设你 class 例如:

  \common\models\MyClass

  public static function mStatyFunction()
  {

    ....
  }

您可以使用 class 名称作为变量

$myClass = '\common\models\MyClass';

$myClass::myStatFunction();

或者如果你还需要函数名作为 var 你可以

$myFunc = 'myStatFunction';

 $myClass::$myFunc();

对于非静态函数,您可以简单地创建一个新对象

public function myDinaFunction()
{
  ....
}

$myObject = new MyClass();

并调用函数

$myObject->myDinaFunction();

$var = 'myDinaFunction";

$myObject->$var();