`

php中的@抑制错误操作符

    博客分类:
  • PHP
阅读更多
今天有朋友问起PHP的@抑制错误操作符,发现平常少用,特复习了下,笔记之:


http://www.laruence.com/2009/07/27/1020.html
错误抑制符
我们知道,在PHP中,可以通过错误抑制符来静默错误提示, 那么它是通过什么方式呢?

在语法分析的过程中, 对于:

<?php     @include('file');?>会分别在include语句前后插入俩条Opline(操作), 这俩个操作分别做:

1. 保存当前的error_reporting值, 并设置error_reporting(0); //关闭错误输出2. 恢复之前保存的error_reporting值也就是说, 其实上面的代码, 和下面的代码类似:

$old = error_reporting(0);include('file');error_reporting($old);另外, 讲一句题外话:”什么时候才应用错误抑制呢?”, 我个人建议, 就是如果这条语句出错了对你影响不大, 你也不关心这个错误是什么, 你也不会安排额外的逻辑来处理这种错误, 那么你可以使用错误抑制. 否则, 请你使用额外的逻辑来判断错误.

分享到:
评论

相关推荐

    php学习笔记(三)操作符与控制结构

    PHP支持多种类型的操作符,包括算术操作符、赋值操作符、比较运算符、逻辑运算符、三元操作符、错误抑制操作符和数组操作符等。 1. 算术操作符用于基本的数学运算,如加法、减法、乘法、除法和取余等。 2. 赋值操作...

    php 操作符与控制结构

    7. **错误抑制操作符**:使用 `@` 符号可以抑制表达式执行时产生的错误信息。 8. **数组操作符**:例如 `+` 和 `==`,用于处理数组间的操作和比较。 #### 操作符的使用方法 每种操作符有其特定的使用方法,例如:...

    PHP 基础实例教程(PHP网页实例版)

    PHP 错误抑制操作符 PHP 执行操作符 PHP 数组操作符 PHP 操作符综合使用 PHP 条件判断/循环 PHP if语句 PHP else语句 PHP elseif语句 PHP switch语句 PHP while循环 PHP for和foreach循环 PHP do...while循环 PHP ...

    PHP错误抑制符(@)导致引用传参失败Bug的分析

    错误抑制符是一种前缀操作符,当它被放在任何表达式之前,PHP将不会显示任何由该表达式产生的错误信息。从原理上讲,错误抑制符通过设置或修改error_reporting的级别来实现这一功能,它并不会改变表达式的执行逻辑。...

    PHP的范围解析操作符(::)的含义分析说明

    在PHP中,@符号是一个错误控制运算符,用于抑制错误信息的输出。当代码行前加上@符号时,如果该行代码执行出错,PHP解释器将不会输出错误信息,这有助于隐藏程序运行中的内部错误,避免向最终用户展示技术性错误信息...

    PHP入门教程之操作符与控制结构流程详解

    在进行开发时,可能会遇到需要捕获并处理错误的情况,PHP中的错误控制操作符(@)可以用来抑制表达式执行时所产生的警告。例如`$a=@(100/0);`会抑制除零错误的警告,并返回false。 总而言之,本教程为PHP初学者提供...

    兼容到php5.3以上(php5.6,php7)的Smtp类

    这意味着旧的错误处理函数如`@`操作符来抑制错误不再推荐使用,而是应该抛出和捕获异常。 2. **魔术常量**:`__FUNCTION__`, `__CLASS__`, 和 `__METHOD__` 在PHP 5.3中由弱类型变为强类型,这可能影响到使用这些...

    深入理解PHP原理之错误抑制与内嵌HTML分析

    ### 错误抑制符@ 在PHP中,错误抑制符`@`用于阻止特定语句的错误信息输出。当使用`@`运算符时,PHP会在运行该语句前后进行特殊的处理,以屏蔽可能发生的错误信息。 错误抑制的机制在PHP的语法分析阶段实现,具体...

    php 变量未定义等错误的解决方法

    @操作符是PHP中的一种错误控制操作符,它的作用是抑制特定表达式中出现的错误。当在变量前加上@符号时,PHP会忽略该表达式引发的任何错误。例如,在尝试访问一个未定义的GET参数时,可以通过$_GET['unknown']的方式...

    php的学习笔记-php的学习笔记

    - `@`:错误抑制操作符,用于忽略表达式可能产生的错误。 - `-&gt;`:对象成员操作符,用于访问对象的属性或方法。 - `=&gt;`:数组元素赋值操作符,用于关联数组元素的键值对。 - `?:`:三元运算符,用于简化条件判断后的...

    ecshop中ini.php分析

    这段代码运用了@抑制错误的输出,符合最小权限原则,即不允许非授权操作。 接着,通过__FILE__魔术常量获取当前文件的完整路径,然后通过一系列字符串替换操作得到ECSHOP的根目录路径(ROOT_PATH常量)。这里特别...

    ThinkPHP 3.1.3 for php7

    例如,使用`error_get_last()`替代`@`操作符进行错误抑制,使用`void`函数声明等。 2. 错误处理:PHP7的错误处理机制发生了变化,错误不再继承自异常,而是通过`Error`类处理。ThinkPHP需要调整其错误处理机制,以...

    在PHP中检查PHP文件是否有语法错误的方法

    使用错误抑制符`@`可以抑制`eval()`函数抛出的错误信息,但在实际开发中并不推荐使用这种方法,因为它可能会隐藏其他类型的错误。 综上所述,检查PHP文件是否含有语法错误,可以采取以下几种方法: 1. 使用命令行...

    PHP 检测网址是否能正常打开代码

    结合`@`错误抑制符,我们可以避免因URL无效而产生的错误提示: ```php $url = 'http://example.com'; $content = @file_get_contents($url); if ($content === false) { echo "网址 {$url} 无法正常打开"; } else ...

    PHP基础知识总结

    - `@`:错误抑制符,用于抑制警告信息。 - `-&gt;`:对象属性访问操作符。 - `=&gt;`:用于关联数组元素。 - `?:`:条件运算符。 #### 十、文件包含 `include()` 和 `require()` 用于将一个文件的内容插入到当前文件中。...

    探讨捕获php错误信息方法的详解

    在捕获和处理PHP错误信息时,还应该注意的是错误抑制操作符@。使用@可以抑制错误的输出,防止脚本中断执行,但它不利于调试。因此,在开发过程中不推荐使用此操作符。 为了更深入了解PHP错误捕获,还应该熟悉自定义...

    PHP脚本中include文件出错解决方法

    - **使用`@`错误抑制符**:虽然不推荐,但在测试阶段,你可以在包含语句前加上`@`,以隐藏错误信息。但这并不能解决问题,只是临时隐藏错误。 当处理文件包含时,记得始终保持良好的代码组织和权限管理。始终使用...

    php规范

    10. **避免使用@抑制错误**:使用`@`符号来抑制错误并不解决根本问题,还可能导致其他错误被忽视,应通过合理的错误处理机制来替代。 11. **安全编码**:防止SQL注入、XSS攻击等,使用预处理语句(如PDO)进行...

Global site tag (gtag.js) - Google Analytics