Php 钩子系统

Php 钩子系统,php,Php,我需要一些PHP方面的帮助 在我网站的functions.php文件中,我创建了两个函数 $hooks = array(); function addHook( $hook, $func) { global $hooks; $hooks[$hook][] = $func; } 及 我在head.php文件中调用addToHead()函数 我在需要的地方调用函数addHook() 由于addHook()函数是在addToHead()函数之后调用的,因此addToHead函数不起

我需要一些PHP方面的帮助

在我网站的functions.php文件中,我创建了两个函数

$hooks = array();

function addHook( $hook, $func) {
    global $hooks;
    $hooks[$hook][] = $func;
}

我在head.php文件中调用addToHead()函数

我在需要的地方调用函数addHook()


由于addHook()函数是在addToHead()函数之后调用的,因此addToHead函数不起作用。

在调用函数之前,需要将挂钩设置为全局挂钩

global $hooks;
$hooks = array();

function addHook($hook, $func) {
    global $hooks;
    $hooks[$hook][] = $func;
}

print_r($hooks);
或者,您可以将函数扩展为使用
use
并通过引用传递

$hooks = array();

function addHook($hook, $func) use (&$hooks) {
    $hooks[$hook][] = $func;
}

print_r($hooks);

你是说在调用addhook()之后??
$hooks = array();

function addHook($hook, $func) use (&$hooks) {
    $hooks[$hook][] = $func;
}

print_r($hooks);