Ich weiß, dass dies ein alter Beitrag ist, aber ich hatte ein Problem wie das OP und das habe ich mir ausgedacht.
Beispiel für ein Array, das Sie übergeben könnten. Sie können dies erneut bestellen, wenn eine bestimmte Bestellung erforderlich ist. Bei dieser Frage wird jedoch das getan, was gefragt wird.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Dies ist überschaubar, leicht zu lesen und die Datenextraktionspunkte können jederzeit an einer beliebigen Stelle in der Codierung hinzugefügt und entfernt werden, ohne dass ein massives Umschreiben erforderlich ist. Ich habe Ganzzahlschlüssel verwendet, um mit der ursprünglichen OP-Frage übereinzustimmen, aber Zeichenfolgenschlüssel konnten genauso einfach verwendet werden. In der Tat würde ich es aus Gründen der Lesbarkeit empfehlen.
Stecken Sie dies zur Vereinfachung in eine externe Datei
function unknown_number_arguments($argument_set) {
foreach ($argument_set as $key => $value) {
# create a switch with all the cases you need. as you loop the array
# keys only your submitted $keys values will be found with the switch.
switch ($key) {
case 1:
# do stuff with $value
break;
case 2:
# do stuff with $value;
break;
case 3:
# key 3 omitted, this wont execute
break;
case 5:
# do stuff with $value;
break;
case 8:
# do stuff with $value;
break;
default:
# no match from the array, do error logging?
break;
}
}
return;
}
Setzen Sie dies am Anfang, wenn die Datei.
$argument_set = array();
Verwenden Sie diese einfach, um das nächste Datenelement zuzuweisen. Verwenden Sie die Nummerierung / Benennung entsprechend der Herkunft der Daten.
$argument_set[1][] = $some_variable;
Und schließlich das Array übergeben
unknown_number_arguments($argument_set);