php错误抑制操作符@的用法解析

CYBEREXP2008 中财金控投资有限公司 项目经理/项目主管  2009-08-12 10:56:23
如下:

<?php

$a = @(50/0);

@mysql_query($sql);

@mkdir('/usr/1/2 ');

?>

这和异常处理有什么区别???
...全文
433 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CYBEREXP2008 2009-08-12
多谢楼上的
回复
fenyao 2009-08-12
高手!
回复
程序猿之殇 2009-08-12
@屏蔽错误输出
异常处理,使用try catch捕获异常,只有当函数或者表达式抛出异常的时候,才能处理.
以$a = @(50/0)为例.

function divide($a, $b)
{
if($b == 0)
{
throw new Exception("Division by zero!");
}
return $a/$b;
}
try{
divide(50,0);
}
catch(Exception $e)
{
echo $e->getMessage();
}

回复
foolbirdflyfirst 2009-08-12
@(50/0);
相当于

$es = ini_get('error_reporting');
error_reporting(0);//屏蔽出错信息
(50/0);
error_reporting($es);//恢复设置

异常处理最重要是要捕获到异常,然后做一些特殊处理.而@只是屏蔽掉错误信息.
回复
hzbigdog 2009-08-12
@只是不让系统报错吧。
然后通过后面去获取赋值出来的状态,判断是否出错
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告