当前位置: 首页 > news >正文

php错误级别的设置方法

PHP在运行时, 针对严重程度不同的错误,会给以不同的提示。 

eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 

我们在开发中, 为了程序的规范性,把报错级别,调的比较高NOTICE级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,网站运营过程中,就不宜报这么多错. 

1:这种错误给客户的印象不好 
2:在报错时,把网站的绝对路径,如D:\www\1015都报出来了.增大被攻击的风险 
因此,在网站上线后,就应该让报错级降低,少报错甚至不报. 

修改报错级别: 

    1: php.ini里修改error_reporting 选项 
    2: 可以在php页面里,用error_reporting()函数来修改 

错误级别用2进制的值来表示的: 1111 1111 1111 111从左到右,每位上的1,代表一种错误级别 

  fatal error致命错误: 0000 0000 0000 001 开启 1 
  warning 警告错误 : 0000 0000 0000 010 开启 2 
  NOTICE 警告 : 0000 0000 0001 000 开启 8 


eg: 

    都报出来: error_reporting(11); 
    不要报NOTICE: error_reporting(3); 
    任何错误都不报: error_reporting(0); 

系统为我们把各个级别的值,用系统常量代替了. 

    E_ERROR 1 
    E_WARNING 2 
    E_NOTICE 8 

报所有错误: error_reporting(E_ALL); 

除了NOTICE,其他都报: error_reporting(E_ALL & ~E_NOTICE); 

  在开发中,报错级别高一点,在上线产品中,报错级别要低:+ PHP在运行时, 针对严重程度不同的错误,会给以不同的提示。 

eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 

我们在开发中, 为了程序的规范性,把报错级别,调的比较高NOTICE级别的也报出来,有助于我们快速定位错误和代码规范,但是,在产品上线后,网站运营过程中,就不宜报这么多错. 

1:这种错误给客户的印象不好 
2:在报错时,把网站的绝对路径,如D:\www\1015都报出来了.增大被攻击的风险 
因此,在网站上线后,就应该让报错级降低,少报错甚至不报. 

修改报错级别: 

    1: php.ini里修改error_reporting 选项 
    2: 可以在php页面里,用error_reporting()函数来修改 

错误级别用2进制的值来表示的: 1111 1111 1111 111从左到右,每位上的1,代表一种错误级别 

  fatal error致命错误: 0000 0000 0000 001 开启 1 
  warning 警告错误 : 0000 0000 0000 010 开启 2 
  NOTICE 警告 : 0000 0000 0001 000 开启 8 


eg: 

    都报出来: error_reporting(11); 
    不要报NOTICE: error_reporting(3); 
    任何错误都不报: error_reporting(0); 

系统为我们把各个级别的值,用系统常量代替了. 

    E_ERROR 1 
    E_WARNING 2 
    E_NOTICE 8 

报所有错误: error_reporting(E_ALL); 

除了NOTICE,其他都报: error_reporting(E_ALL & ~E_NOTICE); 

  在开发中,报错级别高一点,在上线产品中,报错级别要低:+ 

 define('DEBUG',true); // 在开发时,声明一个DEBUG模式 
    if(defined('DEBUG')) { //检测到处于开发模式 
    error_reporting(E_ALL); 
    } else { 
    error_reporting(0); 
    } 

 

相关文章:

  • 案例参考:分享一个回报率1:3.5的热门竞价赚钱项目
  • paip.调试js 查看元素事件以及事件断点
  • UBUNTU 12.04安装ORACLE
  • 一段小代码
  • sso单点登录研究
  • 字符串处理总结之一(C#String类)
  • 独立游戏开发者如何利用媒体造势
  • iOS UITapGestureRecognizer手势和UIButton 以及UITabelView点击事件冲突
  • fork/join使用示例
  • Tomcat6.0 for Linux X86_64 Install
  • HLSL学习实践记录: RenderMonkey实现(三):天空盒子
  • eclipse安装颜色主题,个性化你的IDE,让你的IDE焕然一新
  • extjs form 取值 赋值 重置
  • linux网络编程涉及的函数
  • coffeescript 基本语法
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 「面试题」如何实现一个圣杯布局?
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • CSS 提示工具(Tooltip)
  • DataBase in Android
  • js中的正则表达式入门
  • Kibana配置logstash,报表一体化
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • mongodb--安装和初步使用教程
  • mysql_config not found
  • PHP 小技巧
  • Vue2.x学习三:事件处理生命周期钩子
  • 从重复到重用
  • 订阅Forge Viewer所有的事件
  • 构建二叉树进行数值数组的去重及优化
  • 关于使用markdown的方法(引自CSDN教程)
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 聊聊hikari连接池的leakDetectionThreshold
  • 聊聊redis的数据结构的应用
  • 容器服务kubernetes弹性伸缩高级用法
  • 深度学习入门:10门免费线上课程推荐
  • 系统认识JavaScript正则表达式
  • 白色的风信子
  • 你对linux中grep命令知道多少?
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Prometheus VS InfluxDB
  • ​Spring Boot 分片上传文件
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (转)linux 命令大全
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core跨平台微服务学习资源
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器