php mvc将动态数量的变量传递给类/函数

时间:2012-08-16 02:16:28

标签: php arrays dynamic

我对此的研究是否找不到我想要的东西。试过ReflectionClass,但这对我不起作用。

我有一个有功能的课程。进入函数的变量数是动态的。

示例:

包含的课程:

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;
}

对此有何想法?

2 个答案:

答案 0 :(得分:2)

对象使用proper callback

$foo = new Home();
call_user_func_array( array( $foo, 'test'), $variables);

这将调用test()对象上的$foo函数。

答案 1 :(得分:0)

您是否考虑过发送关联数组,然后在函数中使用extract

像:

// 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;
}