我有一个问题问你!
通常,如果您在 OOP 上下文中调用回调函数,则必须使用array(&$this, 'callback_function')
这就是我想出来的。
但是现在我想在外部类中调用回调,因为有很多回调函数。出于结构原因,我想给他们一个自己的课程。
我想:“好吧,创建一个此类的实例并传递它而不是 $this。”
所以我尝试了它,array($cb, 'callback_function')
但array($this->cb, 'callback_function')
它不会工作。
我究竟做错了什么?
谢谢你的帮助!
编辑:
在我的基础课上,我有:
function __construct()
{
// some other vars here
$this->cb = new Callback();
}
并调用它:
$newline = preg_replace_callback("/(^#+) (.*)/", array(&$this->cb, 'callback_heading'), $newline);
在我的回调类中,我有:
class Callback
{
function __construct()
{
$this->list = array("num" => 0, "dot" => 0, "normal" => 0);
$this->td = array("strike" => false, "bold" => false, "italic" => false, "underline" => false, "code" => false);
}
public function callback_heading($parameter)
{
$hashs = strlen($parameter[1]);
$hashs++;
if($hashs > 6)
$hashs = 6;
return "<h".$hashs."><span class=\'indented\'>".$parameter[1]."</span><strong>".$parameter[2]."</strong></h".$hashs.">";
}