我尝试使用call_user_func_array调用对象的非静态方法,但我不了解如何制定回调。我在网上发现了很多类似的例子,但没有像我遇到的那样。
class DBCommand {
private $db; // The DBConnection object
function __construct() {
$db = new DBConnection();
}
function callMethod($method, $arguments) {
// This line gives me the error:
return call_user_func_array(array($this->db, "$method"), $arguments);
}
}
?>
使用DBConnection方法的名称调用callMethod及其正确的参数为我提供了这个
PHP Warning: call_user_func_array() expects parameter 1 to be a valid
callback, first array member is not a valid class name or object
因此,callMethod返回null。
答案 0 :(得分:5)
使用符号[$objectHandle, "methodName"]
动态调用非静态方法:
call_user_func_array([$this,$method], $arguments);