Je sais que c'est un ancien message, mais j'avais un problème comme l'OP et c'est ce que j'ai proposé.
Exemple de tableau que vous pourriez passer. Vous pouvez le commander à nouveau si une commande particulière était requise, mais pour cette question, cela fera ce qui est demandé.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Ceci est gérable, facile à lire et les points d'extraction de données peuvent être ajoutés et supprimés à un moment donné n'importe où dans le codage et évitent toujours une réécriture massive. J'ai utilisé des clés entières pour correspondre à la question originale OP, mais les clés de chaîne pourraient être utilisées tout aussi facilement. En fait pour la lisibilité je le conseillerais.
Collez-le dans un fichier externe pour plus de facilité
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;
}
mettez ceci au début si le fichier.
$argument_set = array();
Utilisez-les simplement pour attribuer le prochain élément de données, utilisez la numérotation / la dénomination en fonction de la provenance des données.
$argument_set[1][] = $some_variable;
Et enfin passer le tableau
unknown_number_arguments($argument_set);