Иногда я пишу функцию PHP с одним входом, ассоциативный массив, содержащий все входы этой функции. Это имеет такие преимущества, как отсутствие необходимости запоминать правильный порядок ввода, но я также заметил, что это значительно облегчает реализацию изменений в больших кодовых базах; когда мне нужно добавить другую переменную, и эта переменная должна пройти через 4 или 5 уже существующих функций, гораздо проще, когда я могу просто вставить ее в массив и передать ее дальше.
У меня вопрос, есть ли у этого недостаток?
Я редко вижу функции, написанные таким образом, в примерах или в открытом исходном коде, который я использую, что наводит меня на мысль, что, возможно, есть и обратная сторона. Если не причина не делать этого, то почему бы не написать все функции таким образом?
UPDATE
Спасибо за все ваши ответы. Похоже, выделяются две основные проблемы:
Читабельность кода - невозможно сказать, какие переменные входят в функцию и для чего они
Переменная ползучесть - может привести к массивным массивам, отражающимся от одной функции к другой; нельзя передавать параметры функциям, которые их не требуют
Обе великие вещи, о которых я не задумывался.
Кажется, что общая суть в том, что код, в котором это проблема, вероятно, должен быть преобразован в класс. К сожалению, в этом конкретном проекте такой рефакторинг выходит за рамки, но я также считаю, что решение Билла Карвина хорошее - передать массив необязательных переменных