at符号(@)在PHP中用作错误控制运算符。当表达式前面带有@符号时, 该表达式可能生成的错误消息将被忽略。如果启用track_errors功能, 则由表达式生成的错误消息并将其保存在变量中$ php_errormsg。该变量将在每个错误时被覆盖。
程序1:
<?php
//File error
$file_name = @file ( 'non_existent_file' ) or
die ( "Failed in opening the file: error: '$errormsg'" );
//It is used for expression
$value = @ $cache [ $key ];
//It will not display notice if the index $key doesn't exist.
?>
运行时错误:
PHP Notice: Undefined variable: errormsg in /home/fe74424b34d1adf15aa38a0746a79bed.php on line 5
输出如下:
Failed in opening the file: error: ''
程序2:
<?php
//Statement 1
$result = $hello [ '123' ]
//Statement 2
$result = @ $hello [ '123' ]
?>
它将仅执行语句1并显示通知消息
PHP Notice: Undefined variable: hello.
注意:@的使用是非常糟糕的编程习惯, 因为它不会使错误消失, 只会将它们隐藏起来, 并且使调试变得更加糟糕, 因为我们看不到代码的实际错误。
参考文献: 错误控制运算符
评论前必须登录!
注册