PHP执行包含静态函数调用的字符串

时间:2015-07-06 07:25:11

标签: php arrays string function-call

我想执行一个包含静态函数调用的字符串

$string="ClassName::function()";

让 ClassName = ABC&功能= ABC
所以

$string="ABC::abc()";

函数abc返回一个数组

现在我想要的是

$array=$string;

它应该执行$ string并将返回的数组存储到$ array

3 个答案:

答案 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