将功能和参数作为参数传递到中间函数,然后调用名为函数



我正在尝试为我的WordPress主题构造一个中介功能,以处理所有检查和返回瞬变。我想从模板调用瞬态函数,如果不存在瞬态,则传递瞬态名称和函数以调用。此外,如果实际调用该函数,我需要传递参数。

我找不到将多个参数传递在一起以供以后使用的任何东西。对于多种用途,我可以依靠最终称为函数的默认参数,然后将第三个参数$args设置为false。我考虑使用序列化,但这一次是一个变量,我需要一次通过几个参数。

在哪里称为瞬态函数:

$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)));

更改此行以使用call_user_func_array

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

最新更新