Tôi biết đây là một bài viết cũ, nhưng tôi đã gặp vấn đề như OP và đây là những gì tôi đã nghĩ ra.
Ví dụ về mảng bạn có thể vượt qua. Bạn có thể đặt hàng lại nếu một đơn hàng cụ thể được yêu cầu, nhưng đối với câu hỏi này, điều này sẽ thực hiện những gì được yêu cầu.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Điều này có thể quản lý, dễ đọc và các điểm trích xuất dữ liệu có thể được thêm và xóa ngay lập tức ở bất kỳ đâu trong quá trình mã hóa mà vẫn tránh phải viết lại nhiều. Tôi đã sử dụng các khóa số nguyên để kiểm đếm với câu hỏi gốc OP nhưng các khóa chuỗi có thể được sử dụng dễ dàng như vậy. Trong thực tế để dễ đọc, tôi sẽ khuyên nó.
Gắn nó vào một tệp bên ngoài để dễ dàng
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;
}
đặt điều này ở đầu nếu tệp.
$argument_set = array();
Chỉ cần sử dụng chúng để gán cho phần dữ liệu tiếp theo, sử dụng đánh số / đặt tên tùy theo nơi dữ liệu đến.
$argument_set[1][] = $some_variable;
Và cuối cùng vượt qua mảng
unknown_number_arguments($argument_set);