-2

(Nは不明)

$controller->$action($params);

でなければなりません

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

4

2 に答える 2

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
)
于 2009-05-13T21:18:20.060 に答える
1

PHP は非常に柔軟な配列を使用します。それらには任意のデータ型を入れることができます。これにより、N 個のパラメーターが不要になります。配列をパラメーターとして使用し、すべての要素 (パラメーター) をループするだけです。

混合型をパラメーターとして使用する場合、ループ内で gettype($var) 関数を使用して変数の型を確認できます。

<?php
    $params = Array($param1, $param2, $paramN);
    $controller->$action($params)
?>
于 2009-05-13T21:16:08.737 に答える