(N未知)$ controller-> $ action($ param1,$ param2,$ param3 ... $ paramN);

时间:2009-05-13 20:52:40

标签: php arrays parameters methods call

(N未知)

$控制器 - > $动作($ PARAMS);

必须是

$ controller-> $ action($ param1,$ param2,$ param3 ... $ paramN);

2 个答案:

答案 0 :(得分:2)

不确定您想要什么,但如果您想调用参数数量未知的方法,可以使用call_user_func_array()

例如:

$result = call_user_func_array(array($controller, $action), $params);

给出了如下数组:

array(1, 2, 'a');

等同于:

$result = $controller->$action(1, 2, 'a');

您可以通过执行以下操作来构建此类数组,但我认为最好先使用数组

$param1 = 'Something';
$param2 = 'Test';

$j = 1;
$params = array();
while (isset(${'param' . $j})) {
    $params[] = ${'param' . $j};
    $j++;
}

print_r($params);

//will output
Array
(
    [0] => Something
    [1] => Test
)

答案 1 :(得分:1)

PHP使用非常灵活的数组。您可以在其中放置任何数据类型。这消除了N个参数的需要。只需使用数组作为参数并遍历所有元素(参数)。

如果使用混合类型作为参数,可以在循环中使用gettype($ var)函数检查变量的类型。

<?php
    $params = Array($param1, $param2, $paramN);
    $controller->$action($params)
?>