| PHP Manual |
| Prev |
Chapter 10. Operators |
Next |
PHP supports one error control operator: the at sign (@). When prepended to an expression
in PHP, any error messages that might be generated by that expression will be ignored.
If the track_errors feature is enabled,
any error message generated by the expression will be saved in the global variable $php_errormsg.
This variable will be overwritten on each error, so check early if you want to use it.
<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");
// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.
?>
|
Note: The @-operator works only on expressions. A simple rule of thumb is: if you can
take the value of something, you can prepend the @ operator to it. For instance, you can prepend it
to variables, function and include() calls, constants,
and so forth. You cannot prepend it to function or class definitions, or conditional structures
such as if and foreach, and so forth.
See also error_reporting().
| Warning |
|
Currently the "@" error-control operator prefix will even disable error reporting for
critical errors that will terminate script execution. Among other things, this means that if you
use "@" to suppress errors from a certain function and either it isn't available or has been
mistyped, the script will die right there with no indication as to why.
|
|