我对此进行了研究,找不到我要找的东西。 尝试了反射类,但这对我不起作用。
我有一个带函数的类。 进入函数的变量数量是动态的。
例:
包含的类:
class Home {
function test($var1, $var2, $var3){
// do stuff here
}
}
// this class is included based on url params, i.e. example.com/home/test/1/2/3
// where home is class, test is function and 1 2 3 are variables
$variables = array('1','2','3'); // static for this example, but array can have any number of elements to it.
$foo = new Home();
$foo->test($variables);
call_user_func_array('test', $variables);
因此,我试图实现的是获取变量数组并将它们发送到函数测试中,就像在代码示例中一样,我可以在其中列出每个变量。
下面的这个例子做了我想做的事情,但是我将如何将其应用于类/mvc 框架?
$colors = array('test','maroon','blue','green');
call_user_func_array('setLineColor', $colors);
function setLinecolor($var1, $var2, $var3, $var4){
echo $var1;
echo $var2;
}
对此有什么想法吗?
对对象使用正确的回调:
$foo = new Home();
call_user_func_array( array( $foo, 'test'), $variables);
这将调用 $foo
对象上的 test()
函数。
您是否考虑过发送关联数组,然后在函数中使用 extract with?
喜欢:
// using
$variables = array('var1'=>'1', 'var2'=>'2', 'var3'=>'3');
// instead of
$variables = array('1','2','3');
并且,功能:
function test($variables)
{
extract($variables);
echo $var1;
echo $var2;
}