Frage

(N ist unbekannt)

$ Controller -> $ action ($ params);

muss

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

War es hilfreich?

Lösung

Nicht wirklich sicher, was Sie wollen, aber wenn Sie möchten, ein Verfahren mit einer unbekannten Anzahl von Parametern können Sie verwenden, um rufen Sie call_user_func_array()

Beispiel:

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

, die eine Anordnung wie angegeben:

array(1, 2, 'a');

wäre gleichbedeutend mit dieser:

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

Sie könnten ein solches Array aufbauen, indem etwas wie unten zu tun, 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
)

Andere Tipps

PHP verwendet sehr flexible Arrays. Sie können alle Datentypen in ihnen. Das eleminates die Notwendigkeit von N-Parameter. Verwenden Sie einfach ein Array als Parameter und eine Schleife durch alle Elemente (Parameter).

Wenn Sie Mischtypen verwenden als Parameter können Sie in der Schleife überprüfen, welche Typen die Variablen durch das gettype mit ($ var) Funktion.

<?php
    $params = Array($param1, $param2, $paramN);
    $controller->$action($params)
?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top