Вопрос по php, warnings – Есть ли способ показать или выдать предупреждение PHP?

33

У меня есть метод select () в классе базы данных, который имеет необязательный логический аргумент $ sum. Этот аргумент используется, чтобы сказать, должен ли метод также использовать COUNT (*).

Я хотел бы показать предупреждение, как и эти обычные ошибки PHP, если я попытаюсь получить доступ к class-> gt; sum, если атрибут не установлен (то есть когда я вызываю select () с $ sum = false.

Есть ли способ показать предупреждение, как это, или я должен просто повторить ошибку и быть счастливым?

Ваш Ответ

3   ответа
4

поэтому я предлагаю взглянуть наисключения.

Да, вы правы, но исключением для этой проблемы является просто столько проблем. Это легко исправимая нефатальная ошибка, которая может быстро произойти при разработке; срабатывания предупреждения достаточно, чтобы проинформировать разработчика о том, что произошло. igorsantos07
+1 Исключения предоставят вам полную информацию о трассировке для отладки, тогда как trigger_error () не даст вам полезного имени файла / номера строки.
Предупреждения существуют по причине. Вы не должны просто игнорировать их и продолжать свой веселый путь, потому что что-тоmost likely но не обязательно пошло не так. Бросая исключения заставляет программиста справляться с ошибкойbefore the end of the script, Если вы просто хотите сообщить об этом разработчику, исключение - это еще более надежный способ сделать это, потому что ваша программа не будет продолжаться, когда состояние, возможно, больше не будет правильным. Если вы хотите продолжить, вы можете попробовать свой код, поймать ошибку и устранить ее соответствующим образом.
13
trigger_error() может принимать только предупреждения семейства E_USER; используйте вместо этого E_USER_WARNING.
... используя E_WARNING в качестве второго аргумента.
47

trigger_error($yourErrorMessage, E_USER_WARNING);

trigger_error() имеет$error_type параметр для установки уровня ошибки (Notice, Warning или жеFatal error). Константы, соответственно:

E_USER_NOTICE             // Notice (default)
E_USER_WARNING            // Warning
E_USER_ERROR              // Fatal Error

Обратите внимание, чтоFatal error останавливает выполнение последовательного PHP-кода, в то время какNotice а такжеWarning пусть это продолжается.

Начиная с PHP 5.5, вы также должны рассмотретьв заключение заявление.

Похожие вопросы