Patrzyłem sobie co potrafi ta klasa i nie mogę zrozumieć kilka rzeczy. Jedną z nich jest to:
// linia 387 $this->plugins->run_hooks("polls_do_newpoll_start");
Jednakże w klasie nie ma zadeklarowanej zmiennej $plugins, więc co się dzieje, ten kod jest poprawny?
Spójrzcie na __construct klasy:
// linia 2365 function MyBBIntegrator(&$mybb, &$db, &$cache, &$plugins, &$lang, &$config) { $this->mybb =& $mybb; $this->db =& $db; $this->cache = $cache; $this->plugins =& $plugins; $this->lang =& $lang; $this->config =& $config; // Some Constants for non-magic-numbers require_once MYBB_ROOT.'inc/class_parser.php'; $this->parser = new postParser; }
Mamy sobie __construct klasy do której przekazywany jest CHYBA wskaźnik (&) do zmiennej $plugins z pliku global.php, następnie do zmiennej $plugins w klasie MyBBIntegrator:
$this->plugins =& $plugins;
jest przypisywany ten chyba wskaźnik. No ale kurcze.. Przecież w klasie tej nie ma zdefiniowanej zmiennej $plugins. Zmienne klasy: cache, config, db, mybb są zdefiniowane w klasie ale plugins i lang nie ma.. Więc co jest grane?