【www.gdgbn.com--安卓教程】

() 定义和用法
() 设置 PHP 的报错级别并返回当前级别。

语法
(report_level)如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:

值 常量 描述
1 E_ERROR Fatal run-time errors. Errors that can not be recovered from. Execution of the script is halted
2 E_WARNING Non-fatal run-time errors. Execution of the script is not halted
4 E_PARSE Compile-time parse errors. Parse errors should only be generated by the parser
8 E_NOTICE Run-time notices. The script found something that might be an error, but could also happen when running a script normally
16 E_CORE_ERROR Fatal errors at PHP startup. This is like an E_ERROR in the PHP core
32 E_CORE_WARNING Non-fatal errors at PHP startup. This is like an E_WARNING in the PHP core
64 E_COMPILE_ERROR Fatal compile-time errors. This is like an E_ERROR generated by the Zend Scripting Engine
128 E_COMPILE_WARNING Non-fatal compile-time errors. This is like an E_WARNING generated by the Zend Scripting Engine
256 E_USER_ERROR Fatal user-generated error. This is like an E_ERROR set by the programmer using the PHP function trigger_error()
512 E_USER_WARNING Non-fatal user-generated warning. This is like an E_WARNING set by the programmer using the PHP function trigger_error()
1024 E_USER_NOTICE User-generated notice. This is like an E_NOTICE set by the programmer using the PHP function trigger_error()
2048 E_STRICT Run-time notices. PHP suggest changes to your code to help interoperability and compatibility of the code
4096 E_RECOVERABLE_ERROR Catchable fatal error. This is like an E_ERROR but can be caught by a user defined handle (see also set_error_handler())
8191 E_ALL All errors and warnings, except level E_STRICT (E_STRICT will be part of E_ALL as of PHP 6.0)
例子
任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:

//禁用错误报告
(0);

//报告运行时错误
(E_ERROR | E_WARNING | E_PARSE);

//报告所有错误
(E_ALL);
?>

设定错误讯息回报的等级。
语法: int (int [level]);
传回值: 整数
函式种类: PHP 系统功能
   
       
           
           
               
                   
                        
                   
               
           
           
       
       
            内容说明
       
   
本函式用来设定错误讯息回报的等级,参数 level 是一个整数的位元遮罩 (bitmask),见下表。
   
       
            value
            constant
       
   
   
       
            1
            E_ERROR
       
       
            2
            E_WARNING
       
       
            4
            E_PARSE
       
       
            8
            E_NOTICE
       
       
            16
            E_CORE_ERROR
       
       
            32
            E_CORE_WARNING
       
       
            64
            E_COMPILE_ERROR
       
       
            128
            E_COMPILE_WARNING
       
       
            256
            E_USER_ERROR
       
       
            512
            E_USER_WARNING
       
       
            1024
            E_USER_NOTICE
       
       
            2047
            E_ALL
       
       
            2048
            E_STRICT
       
   


E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。
E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。
E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。
E_PARSE 从语法中剖析错误。
E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。

PHP 的错误报告
  php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅
参考资料
)。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:
   
       
           
            
display_errors = Off
= E_ALL
           
       
   
  通过在 php.ini 文件中搜索它们,可以发现这两个变量当前的默认值。display_errors 变量的目的很明显 —— 它告诉 PHP 是否显示错误。默认值是 Off。但是,要让开发过程更加轻松,请把这个值设为 On:
   
       
           
            
display_errors = On
           
       
   
   变量的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。
E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出。我只想看到错误和不良编码实践,
但是不想看到无害的提示。所以,请用以下值代替 的默认值:
   
       
           
            
= E_ALL & ~E_NOTICE
           
       
   
  重新启动 Apache,就全部设置好了。接下来,将学习如何在 Apache 上做同样的事。
  服务器上的错误报告
 
 依赖于 Apache 正在做的工作,在 PHP 中打开错误报告可能没法工作,因为在计算机上可能有多个 PHP 版本。有时很难区
分 Apache 正在使用哪个 PHP 版本,因为 Apache 只能查看一个 php.ini 文件。不知道 Apache 正在使用哪
个 php.ini 文件配置自己是一个安全问题。但是,有一种方法可以在 Apache 中配置 PHP 变量,从而保证设置了正确的出错级别。
  而且,最好知道如何在服务器端设置这些配置变量,以否决或抢占 php.ini 文件,从而提供更高级别的安全性。
在配置 Apache 时,应该已经接触过 /conf/httpd.conf 中 http.conf 文件中的基本配置。
  要做在 php.ini 文件中已经做过的事,请把下列各行添加到 httpd.conf,覆盖任何 php.ini 文件:
   
       
           
            
php_flag  display_errors        on
php_value        2039
           
       
   
  这会覆盖在 php.ini 文件中为 display_errors 已经设置的标志,以及
的值。值 2039 代表 E_ALL & ~E_NOTICE。如果愿意采用 E_ALL,请把值设为 2047。同样,还是要重启
Apache。

本文来源:http://www.gdgbn.com/shoujikaifa/23081/