(N ist unbekannt)
$ controller -> $ action ($ params);
müssen
$ Controller -> $ action ($ param1, param2 $, $ param3 ... $ paramN);
(N ist unbekannt)
$ controller -> $ action ($ params);
müssen
$ Controller -> $ action ($ param1, param2 $, $ param3 ... $ paramN);
nicht wirklich sicher, was Sie wollen, aber wenn Sie eine Methode mit einer unbekannten Anzahl von Parametern aufrufen möchten, können Sie call_user_func_array()
verwenden, zB:
$result = call_user_func_array(array($controller, $action), $params);
, die ein Array gegeben wie:
array(1, 2, 'a');
wäre äquivalent zu diesem:
$result = $controller->$action(1, 2, 'a');
Sie ein solches Array wie unten, indem Sie etwas bauen könnte, aber ich denke, es wäre besser, eine Reihe an erster Stelle zu verwenden
$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 verwendet sehr flexible Arrays. Sie können beliebige Datentypen in sie einfügen. Das eliminiert die Notwendigkeit von N-Parametern. Verwenden Sie einfach ein Array als Parameter und durchlaufen Sie alle Elemente (Parameter).
Wenn Sie gemischte Typen als Parameter verwenden, können Sie in der Schleife überprüfen, welche Typen die Variablen haben, indem Sie die gettype ($ var) -Funktion verwenden.
<?php
$params = Array($param1, $param2, $paramN);
$controller->$action($params)
?>
Welche Sprache ist das? – RichieHindle
die Sprache ist php –
* Kopf asplodes * – tj111