PHP 执行包含静态函数调用的字符串
PHP Execute a string containing static function call
我想执行一个包含静态函数调用的字符串
$string="ClassName::function()";
让
类名=ABC & 函数=abc
所以
$string="ABC::abc()";
函数abc returns数组
现在我想要的是
$array=$string;
它应该执行 $string 并将返回的数组存储到 $array
您可以使用 eval
,但要格外小心。
$string = 'Class::function();';
$array = eval($string);
试试这个,通过设置 class name is a variable 直接调用静态方法:
$classname = 'ABC';
$array = $classname::abc();
您可以使用这种奇特的构造来避免使用 eval
class ABC {
static function abc_func() {
echo 'abc';
}
}
$string="ABC::abc_func()";
$i = preg_split('/::|\(\)/', $string);
$i[0]::{$i[1]}(); // abc echoed
我想执行一个包含静态函数调用的字符串
$string="ClassName::function()";
让
类名=ABC & 函数=abc
所以
$string="ABC::abc()";
函数abc returns数组
现在我想要的是
$array=$string;
它应该执行 $string 并将返回的数组存储到 $array
您可以使用 eval
,但要格外小心。
$string = 'Class::function();';
$array = eval($string);
试试这个,通过设置 class name is a variable 直接调用静态方法:
$classname = 'ABC';
$array = $classname::abc();
您可以使用这种奇特的构造来避免使用 eval
class ABC {
static function abc_func() {
echo 'abc';
}
}
$string="ABC::abc_func()";
$i = preg_split('/::|\(\)/', $string);
$i[0]::{$i[1]}(); // abc echoed