不太清楚如何更好地表达标题。
我需要做的是用 call_user_func 调用一个方法。我调用的方法接受几个不同的变量(var1、var2、var3 等),而不是数组。问题是,在调用函数时,我需要将我拥有的数组作为单独的变量传递给方法。我来给你展示。
这是我的方法:
class Test {
public function testing_cronjob($p1, $p2, $p3, $p4, $p5) {
echo 'p1 = ' . $p1 . '<br />';
echo 'p1 = ' . $p2 . '<br />';
echo 'p1 = ' . $p3 . '<br />';
echo 'p1 = ' . $p4 . '<br />';
echo 'p1 = ' . $p5 . '<br />';
}
}
这就是我目前(尝试)如何称呼它:
$obj = new Test();
call_user_func(array($obj, 'testing_cronjob'), $params);
该方法运行,但它只得到一个变量,这不是我想要的。
$params 看起来像这样:
$params = array(
0 => 'first one',
1 => 'second one',
2 => 'third param!',
3 => 'oh and im fourth!!',
4 => 'im last, fml! :('
)
我让自己陷入这种情况的方式是因为我正在创建一个 cronjob 模型。它接受参数以及类和方法名称。它全部存储在数据库中,当它运行时,我需要能够按预期将 $params 发送到方法。
我无法重写方法接受变量的方式,因为那样做的工作量太大了。我将从 cronjob 中调用几个 (10+) 方法,所有这些方法都在应用程序中得到了很好的使用。我也不确定我将如何重写它,但如果您对此有任何建议,请告诉我。
另外,如果这很重要,我正在使用 codeigniter。如果我忘记提及任何内容或者您想要更多代码,请发表评论。
这可能吗?有什么解决方法吗?欢迎任何建议!