首頁 php教程 php手册 PHP error_reporting(E_ALL ^ E_NOTICE)一些资料整理

PHP error_reporting(E_ALL ^ E_NOTICE)一些资料整理

May 24, 2016 pm 12:59 PM
error_reporting

在php中我们对错误的处理会常用到error_reporting函数,大家可以看到最多的是error_reporting(E_ALL ^ E_NOTICE),这个到底什么意思呢,下面我来来看看.

我们在程序中可能经常看到这么一个函数,代码如下:

function setErrorReporting() 
{ 
    //从配置文件读取当前是否为开发环境 
    if (DEV_ENV == true) { 
        ini_set("error_reprorting", "E_ALL & ~E_NOTICE"); 
        ini_set("display_errors", "on"); 
    } else { 
        error_reporting(E_ALL); 
        ini_set('display_errors', 'Off'); 
        ini_set("log_errors" , "On"); 
        ini_set('error_log', '/var/log/phperror.log'); 
 
    } 
}
登入後複製

举例说明:在Windows环境下,原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称.

例如有如下的代码:

if (!$tmp_i) { 
    $tmp_i=10; 
}
登入後複製

在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i

问题如下:

1.问题出在哪里?

2.应如何修改这段代码?

3.不改段代码,如何修改php.ini中的设置使原来在4.3.0中的程序在4.3.1的环境下运行正常而不出现这个错误提示.

解决办法:在程序开头加一句:

error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);

或者修改php.ini:error_reporting = E_ALL & ~E_NOTICE

有关error_reporting()函数:error_reporting() 设置 PHP 的报错级别并返回当前级别.

; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级

; E_ALL - 所有的错误和警告

; E_ERROR - 致命性运行时错

; E_WARNING - 运行时警告(非致命性错)

; E_PARSE - 编译时解析错误

; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的,也可能是有意的行为造成的,(如:基于未初始化的变量自动初始化为一个空字符串的事实而使用一个未初始化的变量)

; E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误

; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命性错)

; E_COMPILE_ERROR - 编译时致命性错

; E_COMPILE_WARNING - 编译时警告(非致命性错)

; E_USER_ERROR - 用户产生的出错消息

; E_USER_WARNING - 用户产生的警告消息

; E_USER_NOTICE - 用户产生的提醒消息

E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案.

E_WARNING 通常都会显示出来,但不会中断程式的执行,这对除错很有效,例如,用有问题的常规表示法呼叫 ereg().

E_ERROR 通常会显示出来,亦会中断程式执行,意即用这个遮罩无法追查到记忆体配置或其它的错误.

E_PARSE 从语法中剖析错误.

E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误.

E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告.

使用方法:

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

error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息

error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息.

error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同,error_reporting(E_ALL);//显示所有错误.

error_reporting(0)

error_reporting(255);是列出所有提示:

error_reporting(0);是不显示所有提示

建议使用:error_reporting(7);

只显示严重错误:

1 E_ERROR 致命的运行时错误

2 E_WARNING 运行时警告(非致命性错误)

4 E_PARSE 编译时解析错误

8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)

16 E_CORE_ERROR PHP启动时初始化过程中的致命错误

32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)

64 E_COMPILE_ERROR 编译时致命性错

128 E_COMPILE_WARNING 编译时警告(非致命性错)

256 E_USER_ERROR 用户自定义的致命错误

512 E_USER_WARNING 用户自定义的警告(非致命性错误)

1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的)

2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)

4096 E_RECOVERABLE_ERROR 接近致命的运行时错误,若未被捕获则视同E_ERROR

6143 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有).


教程链接:

随意转载~但请保留教程地址★

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24