あなたに質問があります!
通常、OOP コンテキスト内でコールバック関数を呼び出す場合は、使用する必要がありますarray(&$this, 'callback_function')
それが私が理解したものです。
しかし、コールバック関数が多すぎるため、外部クラスでコールバックを呼び出したいと思っています。構造上の理由から、独自のクラスを提供したいと考えています。
「わかりました、このクラスのインスタンスを作成し、$this の代わりに渡します。」
array($cb, 'callback_function')
だから私はandで試しました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.">";
}