我想執行包含靜態函數調用PHP執行字符串包含靜態函數調用
$string="ClassName::function()";
讓 類名= ABC &函數的字符串= ABC
所以
$string="ABC::abc()";
功能ABC返回一個數組
現在我想要的是
$array=$string;
其應該執行$字符串和存儲陣列返回到$陣列
我想執行包含靜態函數調用PHP執行字符串包含靜態函數調用
$string="ClassName::function()";
讓 類名= ABC &函數的字符串= ABC
所以
$string="ABC::abc()";
功能ABC返回一個數組
現在我想要的是
$array=$string;
其應該執行$字符串和存儲陣列返回到$陣列
您可以使用eval
,但極其謹慎使用此。
$string = 'Class::function();';
$array = eval($string);
試試這個,直接通過設置類名稱調用靜態方法是一個變量:
$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
@Uchiha我認爲OP要eval。但每個人都在濫用它 – splash58
它不工作時執行顯示解析錯誤:語法錯誤,意外的文件結尾 –
@ splash58是的,你說得對 –