本文目录一览:
php @这个符号,什么意思,什么功能。
它会抑制错误消息。
PHP支持一个错误控制操作符:at符号(@)。当添加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略。
如果已将自定义错误处理程序函数设置为SET错误处理程序()然后它仍然会被调用,但是这个自定义错误处理程序可以(而且应该)调用错误报告()当触发错误的调用前面有@.时,它将返回0。
@符号是差错控制操作者(又称“沉默”或“关闭”操作员)。它使PHP禁止由关联表达式生成的任何错误消息(注意、警告、致命等)。它的工作原理就像一个一元运算符,例如,它具有优先性和结合性。
扩展资料
错误控制运算符顾名思义就是用来控制错误输出,这个控制只是将错误信息屏蔽掉,不让其显示出来,并不是真正的解决错误。
经常在程序中使用某些函数出现一些不必要的错误信息时,可以使用该运算符进行屏蔽,前提是这个错误信息不影响程序的运行。如果对一些影响程序运算的错误,不推荐使用错误控制符,这样不利于消除程序的错误。
下面看一下错误控制运算符的使用实例:
当打开一个不存在的文件时,用“@”来屏蔽错误信息的输出;
在不使用“@”时;
?php
$open_file = fopen("index.php","r");
?
会有以下的输出:
上面是一个警告错误信息提示,大致的意思提示我们index.php"这个文件不存在。错误信息在第三行...
php中为什么有时候要加个@符号?
1.隐藏异常
2.对语句可能会出现的异常而又不想显示出来时使用,比如操作数据库时
$query=@mysql_query($sql);
3.使用@时,如果出错则不容易发现错误在哪。
php中 错误抑制运算符 怎么显示变量未定义错误
梦行回答PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
如果激活了 track_errors 特性,表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
当将@放在一个PHP表达式之前时,这个表达式可能产生的任何警告信息都将被忽略掉。但是使用 错误控制运算符@是需要注意,它只对表达式有效。说得容易懂一点就是:如果从一个地方得到了一个值,我们就可以将@话在它的前面。比方说,把@话在变量、常量和函数调用的前面。值得大家注意的是,不能把这个错误控制运算符@放在函数或者是类的定义之前,也不可以用在条件结构等。
php的错误控制运算符是不是相当于java的异常
不是,@是错误抑制符号,本质是在生成的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信息
}