(Nは不明)
$controller->$action($params);
でなければなりません
$controller->$action($param1, $param2, $param3... $paramN);
(Nは不明)
$controller->$action($params);
でなければなりません
$controller->$action($param1, $param2, $param3... $paramN);
何が欲しいのかよくわかりませんが、不明な数のパラメーターでメソッドを呼び出したい場合は、使用できます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
)
PHP は非常に柔軟な配列を使用します。それらには任意のデータ型を入れることができます。これにより、N 個のパラメーターが不要になります。配列をパラメーターとして使用し、すべての要素 (パラメーター) をループするだけです。
混合型をパラメーターとして使用する場合、ループ内で gettype($var) 関数を使用して変数の型を確認できます。
<?php
$params = Array($param1, $param2, $paramN);
$controller->$action($params)
?>