Я знаю, что это старый пост, но у меня была такая проблема, как ОП, и это то, что я придумал.
Пример массива, который вы можете передать. Вы можете сделать это повторно, если требуется определенный заказ, но для этого вопроса это будет делать то, что задают.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Это управляемо, легко читается, и точки извлечения данных могут быть добавлены и удалены в любой момент в любом месте кодирования и, тем не менее, позволяют избежать переписывания. Я использовал целочисленные ключи, чтобы соответствовать оригинальному вопросу OP, но строковые ключи можно использовать так же легко. На самом деле для удобства чтения я бы посоветовал это.
Вставьте это во внешний файл для простоты
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;
}
Поместите это в начало, если файл.
$argument_set = array();
Просто используйте их для назначения следующего фрагмента данных, используйте нумерацию / наименование в соответствии с тем, откуда поступают данные.
$argument_set[1][] = $some_variable;
И, наконец, передать массив
unknown_number_arguments($argument_set);