Wiem, że to stary post, ale miałem problem jak OP i to właśnie wymyśliłem.
Przykład tablicy, którą możesz przekazać. Możesz zamówić to ponownie, jeśli było wymagane określone zamówienie, ale w przypadku tego pytania zrobi to, o co zostało zadane.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Jest to łatwe w zarządzaniu, łatwe do odczytania, a punkty wyodrębniania danych można dodawać i usuwać w dowolnym momencie w dowolnym miejscu kodowania, a jednocześnie uniknąć masowego przepisywania. Użyłem kluczy całkowitych, aby dopasować się do oryginalnego pytania OP, ale klucze łańcuchowe mogą być równie łatwo używane. Właściwie dla czytelności radziłbym to.
Dla ułatwienia umieść to w zewnętrznym pliku
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;
}
umieść to na początku, jeśli plik.
$argument_set = array();
Po prostu użyj ich, aby przypisać kolejną część danych numerację / nazewnictwo w zależności od tego, skąd pochodzą dane.
$argument_set[1][] = $some_variable;
I na koniec przekaż tablicę
unknown_number_arguments($argument_set);