Php 将函数和参数作为参数传递给中介函数,然后中介函数调用命名函数

Php 将函数和参数作为参数传递给中介函数,然后中介函数调用命名函数,php,wordpress,Php,Wordpress,我正试图为我的WordPress主题构建一个中介函数,处理所有的检查和瞬态返回。我想从模板调用transient函数,如果transient不存在,则传入transient名称和要调用的函数。此外,如果函数实际被调用,我需要传递要使用的参数 我找不到任何关于将多个参数一起传递以供以后使用的信息。对于一些用途,我可以依赖最终调用函数的默认参数,因此将第三个参数$args设置为false。我研究过使用serialize,但这是一次只针对一个变量,我需要能够同时传递多个参数 其中我调用瞬态函数: $p

我正试图为我的WordPress主题构建一个中介函数,处理所有的检查和瞬态返回。我想从模板调用transient函数,如果transient不存在,则传入transient名称和要调用的函数。此外,如果函数实际被调用,我需要传递要使用的参数

我找不到任何关于将多个参数一起传递以供以后使用的信息。对于一些用途,我可以依赖最终调用函数的默认参数,因此将第三个参数
$args
设置为
false
。我研究过使用serialize,但这是一次只针对一个变量,我需要能够同时传递多个参数

其中我调用瞬态函数:

$posts = transitize('transientname', 'functionname', "4, false, array($post->projectsiteid)");
function transitize($transientname, $functionname, $args=false) {
    if (false === ($transient_exists = get_site_transient($transientname))) {
        $functionresult = ($args) ? $functionname($args) : $functionname();
        set_site_transient($transientname, $functionresult, HOUR_IN_SECONDS);
        return $functionresult;
    }
    else {
        return $transient_exists;
    }
}
瞬态检查功能:

$posts = transitize('transientname', 'functionname', "4, false, array($post->projectsiteid)");
function transitize($transientname, $functionname, $args=false) {
    if (false === ($transient_exists = get_site_transient($transientname))) {
        $functionresult = ($args) ? $functionname($args) : $functionname();
        set_site_transient($transientname, $functionresult, HOUR_IN_SECONDS);
        return $functionresult;
    }
    else {
        return $transient_exists;
    }
}

我如何准备第三个参数,其中包含3个参数供以后使用,以便以后的函数调用工作

将第三个参数更改为数组:

$posts = transitize('transientname', 'functionname', array(4, false, array($post->projectsiteid)));
将此行更改为使用
调用用户函数数组

$functionresult = ($args) ? call_user_func_array($functionname, $args) : $functionname();

您可以将
$args
设置为数组,并使用来调用函数