Joomla! の開発中 プラグイン、私は本当に興味深いものに出くわしました。イベントの 1 つには戻り値がありませんが、関数内から変数を呼び出します。事前の知識によると、これは変数が関数内でグローバルである場合にのみ機能するはずですが、ディスパッチャーは関数の外部から変数を呼び出すことができます。
編集:関数内からアクセスされる変数は、パラメーターの1つである必要があることを発見しました! これは func_get_params() または call_user_func() でしょうか?
コーリング コード:
$instance = JDispatcher::getInstance();
$instance->trigger(onJoomCalledEvent, array(&$link, $other_params));
プラグイン (スニペット):
class plgMyPlugin extends JPlugin{
onJoomCalledEvent($link, $other_params){
$link = "Some Value Here";
return false;
}
}
この関数は false を返しますが、アプリケーション (Joomla!) は $link の値を抽出できます。これはどのように行われますか?