 |
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(). | Предупреждение! |
|---|
|
В настоящее время операция-префикс управления ошибками "@" отключает даже сообщения
о критичных ошибках, которые прерывают выполнение скрипта. Помимо всего прочего,
это означает, что, если вы используете "@" для подавления ошибок из определённой
функции, даже если она недоступна или неправильно записана, скрипт будет остановлен
без всякого уведомления о причине. |
|  |