【发布时间】:2010-10-26 00:18:00
【问题描述】:
(N 未知)
$controller->$action($params);
必须
$controller->$action($param1, $param2, $param3... $paramN);
【问题讨论】:
-
如果您能多描述一下您的问题会很有帮助。
标签: php arrays parameters methods call
(N 未知)
$controller->$action($params);
必须
$controller->$action($param1, $param2, $param3... $paramN);
【问题讨论】:
标签: php arrays parameters methods call
PHP 使用非常灵活的数组。您可以将任何数据类型放入其中。这消除了对 N 个参数的需要。只需使用数组作为参数并循环遍历所有元素(参数)。
如果您使用混合类型作为参数,您可以在循环中使用 gettype($var) 函数检查变量的类型。
<?php
$params = Array($param1, $param2, $paramN);
$controller->$action($params)
?>
【讨论】:
不太确定你想要什么,但如果你想调用一个参数数量未知的方法,你可以使用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
)
【讨论】: