Существует более одной веской причины.
Выполните
error_reporting(E_ALL);
в начале вашего сценария, и вы увидите все причины сразу.
Забавно, на практике Вы можете подумать, что это хорошо, это то, что мне может сойти с рук.И ты мог быть прав.Но как разработчик вы должны провести черту где-нибудь о том, что является приемлемым взломом и что является причиной словесного оскорбления.Для меня это конкретное поведение находится за этой чертой.
Непосредственная причина, по которой это плохо , заключается в том, что он делает error_reporting(E_ALL)
непригодным для использования.А хорошая практика разработки требует, чтобы обо всех ошибках сообщалось, эти уведомления настраивают вас на ошибочный код и более сложные сеансы отладки.
Обновление: Я не рассматривал проблему практического решенияв соответствии с существующей ситуацией, вот что я бы сделал на вашем месте:
- Найдите ответственного за это лицо и убедитесь, что он никогда, никогда не сделает это снова любыми необходимыми способами.
- Запустите проблемный скрипт и получите все уведомления о неопределенных константах из файла журнала.
- Используя поиск и замену регулярных выражений из вашего редактора, попробуйте заменить
\[(a-zA-Z_-)\]
на ['$1']
(или что-то подобное).Если количество замен равно количеству уведомлений в лог-файле, вы золотые.В противном случае, попробуйте разделить и завоевать, пока не увидите, где происходит сбой регулярного выражения. - Повторите, как требуется для всех других сценариев.