我正在尝试在我的页面类中使用它。我刚刚开始在PHP中使用对象,所以我仍然有点无能为力(但我尽可能多地学习)。这是我的page()
函数(当有新的页面实例时调用)
set_error_handler('$this->appendError');
这导致错误
警告:set_error_handler()期望参数(appendError)是有效的回调
现在如何在将函数作为字符串传递的同时设置类内部函数。这不可能吗?我应该使用普通函数,然后调用类函数并通过所有参数发送?这对我来说听起来有点麻烦。
或者我错过了这个问题?我已经尝试让我的appendError返回一个字符串,并回显..但它仍然不是很好玩。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:22)
很少有问题。
首先:
'$this->appendError'是一个nogo。它没有将$ this解释为当前类,php将其解释为字符串'$ this'。
第二:尝试
set_error_handler(array($this, 'appendError'));
如果这不起作用,请将$ this替换为类名并静态使用它。
答案 1 :(得分:1)
阅读php.net callback documentation。我认为例3最接近你想要的:
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));