Учебник РНР
Назад Глава 10. Операции Вперёд

Операции управления ошибками

PHP поддерживает одну операцию управления ошибками: знак (@). Если он вставлен как префикс выражения PHP, любые ошибки, которые могут генерироваться этим выражением, подавляются.

Если включено track_errors, любые сообщения об ошибках, генерируемые этим выражением, будут сохраняться в глобальной переменной $php_errormsg. Эта переменная будет перезаписываться при возникновении каждой новой ошибки, поэтому проверяйте её сразу, если необходимо.

<?php /* Предполагается файловая ошибка */ $my_file = @file ('non_existent_file') or die ("Failed opening file: error was '$php_errormsg'"); // работает для всех выражений, а не только в функциях: $value = @$cache[$key]; // уведомления не будет, если индекс $key не существует. ?>

Примечание: @-операция работает только в выражениях. Основное правило: если вы можете получить значение чего-нибудь, вы можете поставить в качестве префикса операцию @. Например, вы можете поставить её к переменным, функциям и вызовам include() , константам и т.д. Вы не можете подставить её к определению функции или класса или структурам управления, таким как if и foreach, и т.д.

См. также error_reporting() .

Предупреждение!

В настоящее время операция-префикс управления ошибками "@" отключает даже сообщения о критичных ошибках, которые прерывают выполнение скрипта. Помимо всего прочего, это означает, что, если вы используете "@" для подавления ошибок из определённой функции, даже если она недоступна или неправильно записана, скрипт будет остановлен без всякого уведомления о причине.


Назад Оглавление Вперёд
Операции сравнения Вверх Операции выполнения