它会抑制错误消息.
PHP支持一个错误控制操作符:at符号(@).当添加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略.
如果已将自定义错误处理程序函数设置为SET错误处理程序()然后它仍然会被调用,但是这个自定义错误处理程序可以(而且应该)调用错误报告()当触发错误的调用前面有@.时,它将返回0.
扩展资料
错误控制运算符顾名思义就是用来控制错误输出,这个控制只是将错误信息屏蔽掉,不让其显示出来,并不是真正的解决错误.
经常在程序中使用某些函数出现一些不必要的错误信息时,可以使用该运算符进行屏蔽,前提是这个错误信息不影响程序的运行.如果对一些影响程序运算的错误,不推荐使用错误控制符,这样不利于消除程序的错误.
下面看一下错误控制运算符的使用实例:
当打开一个不存在的文件时,用"@"来屏蔽错误信息的输出;
在不使用"@"时;
php
$open_file?= fopen("index.php","r");
会有以下的输出:
上面是一个警告错误信息提示,大致的意思提示我们index.php"这个文件不存在.错误信息在第三行...
①隐藏异常
$query=@mysql_query($sql);
梦行回答PHP 支持一个错误控制运算符:@.当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉.
如果激活了 track_errors 特性,表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中.此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查.
当将@放在一个PHP表达式之前时,这个表达式可能产生的任何警告信息都将被忽略掉.但是使用 错误控制运算符@是需要注意,它只对表达式有效.说得容易懂一点就是:如果从一个地方得到了一个值,我们就可以将@话在它的前面.比方说,把@话在变量、常量和函数调用的前面.值得大家注意的是,不能把这个错误控制运算符@放在函数或者是类的定义之前,也不可以用在条件结构等.
不是,@是错误抑制符号,本质是在生成的opcode中增加begin_silence将错误屏蔽,
php的异常处理也是try throw catch,php有个Exception基类.
//自定义的异常类,继承了PHP的异常基类Exception
class?MyException?extends?Exception?{
function?getInfo()?{
return?'自定义错误信息';
}
try?{
//使用异常的函数应该位于?"try"?代码块内.如果没有触发异常,则代码将照常继续执行.但是如果异常被触发,会抛出一个异常.
throw?new?MyException('error');//这里规定如何触发异常.注意:每一个?"throw"?必须对应至少一个?"catch",当然可以对应多个"catch"
}?catch(Exception?$e)?{//"catch"?代码块会捕获异常,并创建一个包含异常信息的对象
echo?$e-getInfo();//获取自定义的异常信息
echo?$e-getMessage();//获取继承自基类的getMessage信息
以上就是土嘎嘎小编为大家整理的php错误抑制符相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!