Вы можете создать пользовательский обработчик ошибок , который будет
- Проверьте, не была ли ошибка Уведомлением
- Проверьте, содержит ли строка ошибки «Неопределенная константа класса»
- Если так по обоим пунктам, бросьте свое исключение
Это даст вам то, что вы хотите. Проблема с этим подходом заключается в том, что теперь вы отвечаете за обработку ВСЕХ ошибок. Обработка ошибок PHP будет полностью обойдена.
Другой подход заключается в определении класса конфигурации и использовании его констант
class Config{
const CONFIG_ONE = 42;
}
//will produce a fatal error
if(Config::CONFIG_TWO){
//...
}
Вместо уведомления вы получите фатальную ошибку, которая кажется более правильной. К сожалению, вы не можете поймать фатальные ошибки без подобных шуток (см. Комментарии в set_error_handler записи руководства).
Последний вариант, который находится далеко от проторенного пути, с которого мы начали, - это создание синглтона конфигурации с переменными частного класса, хранящими ваши значения. Это дает вам полный программный контроль над тем, что происходит, когда кто-то пытается получить доступ к неопределенному значению конфигурации, но вы теряете преимущества констант.