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

Function Yii2从变量动态调用模型中的PHP函数,function,variables,model,yii2,call,Function,Variables,Model,Yii2,Call,是否可以通过变量动态调用模型函数 $model = $request['model']; $action = $request['action']; 我有一些模型和几个功能在里面。现在我想调用一个基于变量$model和$action的模型函数。在这种情况下,我需要根据请求动态调用模型函数。对于静态函数 $myObject->myDinaFunction(); 假设你是一个班级,例如: \common\models\MyClass 带着 public static functi

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

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

对于静态函数

$myObject->myDinaFunction();
假设你是一个班级,例如:

  \common\models\MyClass
带着

  public static function mStatyFunction()
  {

    ....
  }
您可以将类名用作var

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

$myClass::myStatFunction();
或者,如果您还需要函数名作为var,您可以

$myFunc = 'myStatFunction';

 $myClass::$myFunc();
对于非静态函数,您可以简单地创建一个新对象

public function myDinaFunction()
{
  ....
}

$myObject = new MyClass();
并调用该函数

$myObject->myDinaFunction();
或者也

$var = 'myDinaFunction";

$myObject->$var();

你的意思是类内的静态函数??这些函数是上述类中的公共函数。这些函数是静态的还是非静态的??谢谢你的快速支持!我不知道,在这里如何联系你,除了在这个答案。也许你也可以看看这个问题@佩里诺:我已经看过了,但很抱歉,目前我还没有从事持票人/休息的经验。。所以我想我帮不了你..在你的静态函数$myClass::myStatFunction()的例子中,我怎么能把myStatFunction()也用作变量呢?在非静态函数建议中,我发现,我还必须将名称空间包含到类变量中。如果我选择变量$myObject->$var,我会遇到一个问题:未定义的属性:frontend\modules\rest\models\Member::$login->其中'login'是$var的正确值。这意味着$var将解析为其值,但系统会在更新var应答中的funct的情况下为静态函数设置一个'$'。。对于测试,我使用的是(PHP5.6.31)和work。。(显然指定了正确的命名空间)