Php 在Yii2中作为静态类函数运行字符串

Php 在Yii2中作为静态类函数运行字符串,php,yii,yii2,Php,Yii,Yii2,我收到的函数是字符串,如下所示: "\app\models\AddrModel::getText('A_00001724');" 现在我需要将这个字符串转换并作为静态函数调用运行,以检索A_00001724id的值 我该怎么做? PS:当我把它称为$value=new$function时我明白了 Class '\app\models\AddrModel::getText('A_00001724')' not found 因为这不仅仅是课堂。它是一个类为://p>eval()的静态函数,可用于

我收到的函数是字符串,如下所示:

"\app\models\AddrModel::getText('A_00001724');"
现在我需要将这个字符串转换并作为静态函数调用运行,以检索
A_00001724
id的值

我该怎么做?

PS:当我把它称为
$value=new$function时我明白了

Class '\app\models\AddrModel::getText('A_00001724')' not found
因为这不仅仅是课堂。它是一个类为://p>eval()的静态函数,可用于以字符串形式执行php代码。如果执行的代码返回值,则Eval()返回值

因此,在上述情况下:

$func = "\app\models\AddrModel::getText('A_00001724');";
$value = eval('return ' . $func);
print_r($value);

$value=eval('return')“\app\models\AddrModel::getText('A_00001724');”)如何?@Mat我检查了文档,
eval
不返回任何值,因此这对我不起作用。如果eval代码返回值,eval会返回值。我的测试用例是:
$func=“sprintf(“%s%s”、“hello”、“world”);”$value=eval('return'.$func);打印($value);//回声“你好,世界”
是的,谢谢。我还找到了相同的解决方案:
$value=eval('return'.$function'.;')。你应该把它作为答案,这样我就可以接受了。请注意,
eval
在某些情况下有点风险,因此请确保在使用之前检查并验证
$function
值。不用说eval是一个非常糟糕的主意,也许你应该改变解决问题的方法