您的位置:

php错误抑制符,php错误控制运算符

本文目录一览:

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信息

}