Bunun eski bir gönderi olduğunu biliyorum, ancak OP gibi bir sorun yaşıyordum ve bulduğum şey buydu.
Geçebileceğiniz dizi örneği. Belirli bir sipariş gerekiyorsa bunu yeniden sipariş edebilirsiniz, ancak bu soru için bu, isteneni yapacaktır.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Bu yönetilebilir, okunması kolaydır ve veri çıkarma noktaları kodlamanın herhangi bir yerinde bir anda eklenebilir ve kaldırılabilir ve yine de büyük bir yeniden yazma işleminden kaçınabilir. OP orijinal sorusuyla hesaplamak için tamsayı anahtarları kullandım, ancak dize anahtarları da aynı şekilde kolayca kullanılabilir. Aslında okunabilirlik için tavsiye ederim.
Kolaylık için bunu harici bir dosyaya yapıştırın
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;
}
dosya varsa bunu başına koyun.
$argument_set = array();
Bir sonraki veri parçasını, verilerin nereden geldiğine göre numaralandırma / adlandırma atamak için kullanın.
$argument_set[1][] = $some_variable;
Ve sonunda diziyi geç
unknown_number_arguments($argument_set);