我想执行一个包含静态函数调用的字符串
$string="ClassName::function()";
让
ClassName = ABC&功能= ABC
所以
$string="ABC::abc()";
函数abc返回一个数组
现在我想要的是
$array=$string;
它应该执行$ string并将返回的数组存储到$ array
中答案 0 :(得分:3)
您可以使用eval
,但请谨慎使用。
$string = 'Class::function();';
$array = eval($string);
答案 1 :(得分:0)
试试这个,通过设置类名是一个变量来直接调用静态方法:
VectorExpression
答案 2 :(得分:0)
您可以使用这种奇特的结构来避免使用eval
class ABC {
static function abc_func() {
echo 'abc';
}
}
$string="ABC::abc_func()";
$i = preg_split('/::|\(\)/', $string);
$i[0]::{$i[1]}(); // abc echoed