如何调整Codeigniter错误报告级别

本文介绍了在CodeIgniter框架中如何调整错误报告级别以避免显示Notice级别的错误信息。通过修改error_reporting()函数的参数,可以有效地控制哪些类型的错误会被显示出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在CI框架中加载httpClient时抛出以下错误:

 

A PHP Error was encountered
Severity: Notice

Message: Undefined variable: host

 

 

在默认的普通PHP文件中输出一个未声明的变量是不会报错误的,但使用codeigniter框架,却会抛出错误。为了不让类似的错误信息显示出来,于是阅读了codeigniter框架代码。在index.php中找到了配置错误级别的方法error_reporting()。

 

error_reporting() 设置 PHP 的报错级别并返回当前级别。

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

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 核心错误警告。

 

 

error_reporting()函数可以屏蔽掉错误信息,但是PHP 核心造成的错误,是无法屏蔽的,因为PHP 核心造成的错误会直接导致PHP文件编译失败,因为书写格式没有按照PHP的编码规则写而造成的错误,是无法屏蔽的。

 

所以,将error_reporting(E_ALL)改成error_reporting(E_ALL ^ E_NOTICE)就可以屏蔽掉Notice级别的错误。以下列举了一些常用设置:

 

// Turn off all error reporting;
error_reporting(0);

 

// Report simple running errors;
error_reporting(E_ERROR | E_WARNING | E_PARSE);

 

// Reporting E_NOTICE can be good too (to report uninitialized variables or catch variable name misspellings …);
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

 

// Report all errors except E_NOTICE. This is the default value set in php.ini;
error_reporting(E_ALL ^ E_NOTICE);

 

// Report all PHP errors (bitwise 63 may be used in PHP 3);
error_reporting(E_ALL);

 

// Same as error_reporting(E_ALL);
ini_set(’error_reporting’, E_ALL);

 

For more info visit:  http://www.php.net/error_reporting

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值