函数名的PHP变量数组

函数名的PHP变量数组,php,wordpress,function,variables,foreach,Php,Wordpress,Function,Variables,Foreach,我试图在WordPress主题中实现一些钩子,但是我不想用重复的代码写出每个函数,而是想知道是否可以使用数组来声明函数 例如,通常我会使用类似于: function hook_name_1() { do_action( 'hook_name_1' ); } function hook_name_2() { do_action( 'hook_name_2' ); } 有没有办法将钩子/函数名放入数组中,然后用一个foreach循环或类似的方法调用它们?如下所示: $hook_a

我试图在WordPress主题中实现一些钩子,但是我不想用重复的代码写出每个函数,而是想知道是否可以使用数组来声明函数

例如,通常我会使用类似于:

function hook_name_1() {
    do_action( 'hook_name_1' );
}

function hook_name_2() {
    do_action( 'hook_name_2' );
}
有没有办法将钩子/函数名放入数组中,然后用一个foreach循环或类似的方法调用它们?如下所示:

$hook_array = array(
home_name_1,
hook_name_2
);

foreach ($hook_array as $hook) {
    function $hook() {
        do_action( $GLOBALS['hook'] );
}
}
函数中的do_action do_action部分可以像这样正常工作,但我无法理解的是变量函数名


可以这样设置一个数组,然后根据数组值创建函数名吗?

你不能调用
do\u action()
而不是创建包装函数吗?如果您确实必须这样做才能创建命名函数而不是匿名函数,那么您可以这样做,但这是一种明显的代码味道。您可以使用定义一组函数,但该解决方案与
eval()
一样糟糕。您是否问过自己这是否真的有必要?动态定义函数似乎很实用,但它确实很糟糕。