这一次,我面临一个非常奇怪的问题。我有以下代码:
$xml = simplexml_load_file($this->interception_file);
foreach($xml->children() as $class) {
$path = str_replace('__CLASS_DIR__',CLASS_DIR,$class['path']);
if(!is_file($path)) {
throw new Exception('Bad configuration: file '.$path.' not found');
}
$className = pathinfo($path,PATHINFO_FILENAME);
foreach($class as $method) {
$method_name = $method['name'];
$obj = new $className();
var_dump(in_array($method_name,get_class_methods($className)));exit;
echo $obj->$method_name();### not a method ???
}
}
如您所见,我从 XML 文件中获取类名和方法名。我可以毫无问题地创建该类的实例。最后的 var_dump 返回 true,这意味着 $method_name(它有 2 个可选参数)是 $className 的一个方法。
但是,我很确定语法是正确的,当我尝试时: $obj->$method_name() 我得到:
致命错误:方法名称必须是字符串
如果您有任何想法,请告诉我 :) 提前谢谢,Rolf