zoukankan      html  css  js  c++  java
  • error_reporting的计算规则

    网上是这样说的

    说白了就是PHP页面报错的级别设置,我感觉这个功能很鸡肋,说白了,这玩意儿能报出来的错对于对PHP熟悉的人也不会犯,不熟悉的人你报出来也不知道是啥意思。
    
    想起以前经常改现成代码的时候经常遇到,好好的页面上挂一个“Warning:xxx”挺烦的...看着好象也没什么正经错误,但就是警告你,反正人家也没说当时就要抽你,但是警告你。
    
    解决方案就是加个error_reporting(0);意思是无视警告。
    
    内时候觉得特慎的慌,不敢使,怕万一有致命错误丫不报了咋整...在这里我就告诉各位,真有有致命错误你的程序根本运行不了,真是带BUG的可执行语句丫也报不出来!
    
    所以,到此为止,(0)就够了。
    
     
    
    有人好矫情,我就把这个函数详细说说,实际上人家分14个等级供你自定义报错的方式,有数字和字符串两种参数的写法,中文说明对应如下:
    
    数字    字符串          说明
    
    1       E_ERROR         致命的运行时错误。 错误无法恢复过来。脚本的执行被暂停 00000000 00000001
    2       E_WARNING       非致命的运行时错误。脚本的执行不会停止  00000000
    4       E_PARSE         编译时解析错误。解析错误应该只由分析器生成
    8       E_NOTICE        运行时间的通知。该脚本发现一些可能是一个错误,但也可能发生在正常运行一个脚本
    16      E_CORE_ERROR    在PHP启动时的致命错误。这就好比一个在PHP核心的E_ERROR
    32      E_CORE_WARNING  在PHP启动时的非致命的错误。这就好比一个在PHP核心E_WARNING警告
    64      E_COMPILE_ERROR  致命的编译时错误。这就像由Zend脚本引擎生成了一个E_ERROR
    128     E_COMPILE_WARNING 非致命的编译时错误。这就像由Zend脚本引擎生成了一个E_WARNING警告
    256     E_USER_ERROR    致命的用户生成的错误。这就像由使用PHP函数trigger_error(程序员设置E_ERROR)
    512     E_USER_WARNING   非致命的用户生成的警告。这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告)
    1024    E_USER_NOTICE    用户生成的通知。这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集)
    2048    E_STRICT        运行时间的通知。
    
    4096    E_RECOVERABLE_ERROR 捕捉致命的错误。这就像一个E_ERROR,但可以通过用户定义的处理捕获(又见set_error_handler())
    8191    E_ALL来        所有的错误和警告,除非横向E_STRICT(E_STRICT将是PHP 6.0中E_ALL来一部分的)

    其实是根据一个二进制的掩码来计算的具体规则如下

       00000000 00000000

    根据燕十八的讲解很容易理解这个东西,把上面的规则计算成2进制出来即可

    进一步拓展就可以使用位运算进行计算(位运算在这里发挥作用了啊)

    按位与    &                        两边全为1  结果是1
    按位或    |                         两个有一个是1  结果是1
    按位异或   ^                    两边必须一个是0一个是1  结果才是1          
    按位取反  ~               0变1   1变0            

    举个例子即可E_ALL^E_NOTICE的意思就是去除掉notice类型的错误

  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/linksgo2011/p/2974790.html
Copyright © 2011-2022 走看看