当前位置:  开发笔记 > 编程语言 > 正文

PHP错误等级大集合

很多情况下,我们的PHP文件会出现一些非常难以排查的错误,比如输出大白页,调错无从下手。这是可能PHP的错误等级屏蔽了一些非致命的错误,造成没有任何错误提示。所以了解和熟悉PHP错误等级,或许能够成为调错的...">

 

很多情况下,我们的PHP文件会出现一些非常难以排查的错误,比如输出大白页,调错无从下手。这是可能PHP的错误等级屏蔽了一些非致命的错误,造成没有任何错误提示。所以了解和熟悉PHP错误等级,或许能够成为调错的新方法。

       php.ini中的错误报告等级默认情况下,PHP错误报告等级是E_NOTICE, E_ALL表示报告所有非致命错误,因为这些错误可能会导致大问题(比如使用了未定义的变量)。

显示所有的错误,除了提醒和编码标准化警告。

错误报告是位字段。可以将数字加起来得到想要的错误报告等级。

E_ALL - 所有的错误和警告(不包括 E_STRICT)

E_ERROR - 致命性的运行时错误

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

E_PARSE - 编译时解析错误

E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)

E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。

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

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

E_COMPILE_ERROR - 编译时致命性错

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

E_USER_ERROR - 用户自定义的错误消息

E_USER_WARNING - 用户自定义的警告消息

E_USER_NOTICE - 用户自定义的提醒消息

如果设置为:E_ALL | E_STRICT,则表示记录所有的错误信息,可能会导致网站出现一大堆的错误代码;但是对于程序员来说应该说是一件好事,可以把代码优化到最优;一些非致命性错误虽然不影响程序的运行,但是会使PHP的负担加重,通常是增加了网站进程(例如IIS的应用程序池)的负担。

 

--------------------------------------------------------------------------------------------------

 

调整PHP中的错误报告

一旦把PHP设置成呈现出发生了哪些错误,你可能想调整错误报告的级别。可以将作为一个整体或独立脚本的PHP安装设置成报告或忽略不同的错误级别。表7-1列出了大多数级别,但是它们一般是以下3类级别之一:

l    注意(notice),这不会阻止脚本的执行,并且可能不一定是一个问题;

l    警告(warning),这指示一个问题,但是不会阻止脚本的执行;

l    错误(error),这会阻止脚本继续执行(包括常见的解析错误,它从根本上阻止脚本运行)。

表7-1  PHP的错误报告设置,与error_reporting()函数一起使用,或者在php.ini文件中使用。注意,E_ALL的值不同于旧版的PHP并且不包括E_STRICT(但在PHP 6中存在)

编    号

常    量

报    告

1

E_ERROR

致命的运行时错误(它会阻止脚本的执行)

2

E_WARNING

运行时警告(非致命的错误)

(续)

编    号

常    量

报    告

4

E_PARSE

解析错误

8

E_NOTICE

注意(事情可能是或者可能不是一个问题)

256

E_USER_ERROR

用户生成的错误消息,由trigger_error()函数生成

512

E_USER_WARNING

用户生成的警告,由trigger_error()函数生成

1024

E_USER_NOTICE

用户生成的注意,由trigger_error()函数生成

2048

E_STRICT

关于兼容性和互操作性的建议

8191

E_ALL

所有的错误、警告和建议

 

原文链接: http://www.cnblogs.com/iuky/archive/2011/09/24/2189561.html


推荐阅读
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • 推荐一个适合前PHP开发者学习Python基础的优质网站
    如果你曾是PHP开发人员,对PHP函数了如指掌(笔者本人就有这样的背景),而现在因职业发展或个人兴趣需要转向Python学习,推荐一个专为这类开发者设计的优质网站。该平台不仅提供Python基础教程,还结合了PHP开发者熟悉的概念,帮助你快速上手Python编程。 ... [详细]
  • 如何在PHP中实现链接输出与字符串连接的操作技巧 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • Java新手求助:如何优雅地向心仪女生索要QQ联系方式(附代码示例与技巧)
    在端午节后的闲暇时光中,我无意间在技术社区里发现了一篇关于如何巧妙地向心仪女生索取QQ联系方式的文章,顿时感到精神焕发。这篇文章详细介绍了源自《啊哈!算法》的方法,不仅图文并茂,还提供了实用的代码示例和技巧,非常适合 Java 新手学习和参考。 ... [详细]
  • 在学习SmartClient过程中,许多开发者会参考IssueVision和TaskVision这两个示例程序。然而,这些程序的安装过程较为复杂,特别是对数据库配置有较高要求。为了帮助初学者顺利上手,本文将详细分享这两个程序的源代码,并提供详细的安装指南和常见问题解决方案,确保用户能够快速、顺利地完成安装和配置。 ... [详细]
  • 探索 PHP 8.0 的重大更新:轻松获取年度月份数据
    PHP 8.0 引入了多项重要更新,包括增强的类型系统、全新的 JIT 编译器以及联合类型等特性。这些改进不仅提升了性能,还简化了开发流程。本文将重点介绍如何利用 PHP 8.0 的新功能轻松获取年度和月份数据,为开发者提供更高效、更简洁的解决方案。 ... [详细]
  • 在处理历史交易表时,发现存在部分重复交易记录,需进行数据清理。为解决此问题,考虑构建一个临时表,并采用SQL Server ODBC工具进行数据的导入与导出操作,以实现高效去重。此外,建议结合索引优化和批处理技术,进一步提升数据处理效率和系统性能。 ... [详细]
  • 在从深圳返回武汉的旅途中,我购买并阅读了《史玉柱亲述营销智慧》一书。我对史玉柱的兴趣源于对其脑白金广告策略演变的观察,最初是出于对其营销手法的质疑和批评。然而,随着对书中内容的深入理解,逐渐认识到他独特的营销理念和策略背后的深刻洞察力。这本书不仅详细剖析了史玉柱的商业成功之路,还提供了许多实用的营销技巧和经验分享,对于希望提升自身营销能力的读者来说,具有极高的参考价值。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 作为一名技术娴熟的编程专家,我通过多年的经验积累和对代码片段的系统总结,几乎无需额外查阅资料。相比之下,普通开发人员在项目开发中通常需要花费10%-20%的时间用于资料查询。我特别注重代码的复用性和高效性,这不仅提高了开发效率,还保证了代码的高质量和可维护性。 ... [详细]
  • Django新手指南:第三步——构建你的首个项目
    在本教程中,我们将引导你完成创建第一个Django应用的步骤。通过实际操作,你将逐步了解Django框架的核心概念和基本功能。从项目结构到视图和模板的实现,我们将详细介绍每个环节,帮助你快速上手并构建出一个功能完整的Web应用。 ... [详细]
  • 本文探讨了在 Silverlight 应用程序中实现多窗口界面的方法,通过引入浮动窗口组件,增强了应用的交互性和用户体验。该方案详细介绍了技术实现过程,包括窗口管理、布局调整及跨窗口通信机制,为开发者提供了实用的参考。 ... [详细]
author-avatar
dnjaskn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有