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