今天有朋友问起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支持多种类型的操作符,包括算术操作符、赋值操作符、比较运算符、逻辑运算符、三元操作符、错误抑制操作符和数组操作符等。 1. 算术操作符用于基本的数学运算,如加法、减法、乘法、除法和取余等。 2. 赋值操作...
7. **错误抑制操作符**:使用 `@` 符号可以抑制表达式执行时产生的错误信息。 8. **数组操作符**:例如 `+` 和 `==`,用于处理数组间的操作和比较。 #### 操作符的使用方法 每种操作符有其特定的使用方法,例如:...
PHP 错误抑制操作符 PHP 执行操作符 PHP 数组操作符 PHP 操作符综合使用 PHP 条件判断/循环 PHP if语句 PHP else语句 PHP elseif语句 PHP switch语句 PHP while循环 PHP for和foreach循环 PHP do...while循环 PHP ...
错误抑制符是一种前缀操作符,当它被放在任何表达式之前,PHP将不会显示任何由该表达式产生的错误信息。从原理上讲,错误抑制符通过设置或修改error_reporting的级别来实现这一功能,它并不会改变表达式的执行逻辑。...
在PHP中,@符号是一个错误控制运算符,用于抑制错误信息的输出。当代码行前加上@符号时,如果该行代码执行出错,PHP解释器将不会输出错误信息,这有助于隐藏程序运行中的内部错误,避免向最终用户展示技术性错误信息...
在进行开发时,可能会遇到需要捕获并处理错误的情况,PHP中的错误控制操作符(@)可以用来抑制表达式执行时所产生的警告。例如`$a=@(100/0);`会抑制除零错误的警告,并返回false。 总而言之,本教程为PHP初学者提供...
这意味着旧的错误处理函数如`@`操作符来抑制错误不再推荐使用,而是应该抛出和捕获异常。 2. **魔术常量**:`__FUNCTION__`, `__CLASS__`, 和 `__METHOD__` 在PHP 5.3中由弱类型变为强类型,这可能影响到使用这些...
### 错误抑制符@ 在PHP中,错误抑制符`@`用于阻止特定语句的错误信息输出。当使用`@`运算符时,PHP会在运行该语句前后进行特殊的处理,以屏蔽可能发生的错误信息。 错误抑制的机制在PHP的语法分析阶段实现,具体...
@操作符是PHP中的一种错误控制操作符,它的作用是抑制特定表达式中出现的错误。当在变量前加上@符号时,PHP会忽略该表达式引发的任何错误。例如,在尝试访问一个未定义的GET参数时,可以通过$_GET['unknown']的方式...
- `@`:错误抑制操作符,用于忽略表达式可能产生的错误。 - `->`:对象成员操作符,用于访问对象的属性或方法。 - `=>`:数组元素赋值操作符,用于关联数组元素的键值对。 - `?:`:三元运算符,用于简化条件判断后的...
这段代码运用了@抑制错误的输出,符合最小权限原则,即不允许非授权操作。 接着,通过__FILE__魔术常量获取当前文件的完整路径,然后通过一系列字符串替换操作得到ECSHOP的根目录路径(ROOT_PATH常量)。这里特别...
例如,使用`error_get_last()`替代`@`操作符进行错误抑制,使用`void`函数声明等。 2. 错误处理:PHP7的错误处理机制发生了变化,错误不再继承自异常,而是通过`Error`类处理。ThinkPHP需要调整其错误处理机制,以...
使用错误抑制符`@`可以抑制`eval()`函数抛出的错误信息,但在实际开发中并不推荐使用这种方法,因为它可能会隐藏其他类型的错误。 综上所述,检查PHP文件是否含有语法错误,可以采取以下几种方法: 1. 使用命令行...
结合`@`错误抑制符,我们可以避免因URL无效而产生的错误提示: ```php $url = 'http://example.com'; $content = @file_get_contents($url); if ($content === false) { echo "网址 {$url} 无法正常打开"; } else ...
- `@`:错误抑制符,用于抑制警告信息。 - `->`:对象属性访问操作符。 - `=>`:用于关联数组元素。 - `?:`:条件运算符。 #### 十、文件包含 `include()` 和 `require()` 用于将一个文件的内容插入到当前文件中。...
在捕获和处理PHP错误信息时,还应该注意的是错误抑制操作符@。使用@可以抑制错误的输出,防止脚本中断执行,但它不利于调试。因此,在开发过程中不推荐使用此操作符。 为了更深入了解PHP错误捕获,还应该熟悉自定义...
- **使用`@`错误抑制符**:虽然不推荐,但在测试阶段,你可以在包含语句前加上`@`,以隐藏错误信息。但这并不能解决问题,只是临时隐藏错误。 当处理文件包含时,记得始终保持良好的代码组织和权限管理。始终使用...
10. **避免使用@抑制错误**:使用`@`符号来抑制错误并不解决根本问题,还可能导致其他错误被忽视,应通过合理的错误处理机制来替代。 11. **安全编码**:防止SQL注入、XSS攻击等,使用预处理语句(如PDO)进行...