PHP“错误提示”开启与关闭的正确方法
我们在刚开发项目的时候,非常的需要错误提示,但是项目上线以后,当然不想把这些错误提示显示出来对吗?这就要做一些设置了,往往很多的PHP新手,都不知道怎么设置?或者说设置的方法不对。
一、项目正在开发中的设置方法:
- 打开 php.ini
- 设置 error_reporting = E_ALL
- 设置 display_errors = On
二、项目真正上线后的设置方法:
- 打开 php.ini
- 设置 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
- 设置 display_errors = Off
三、如果不具备修改php.ini的权限,可以将以下两行代码直接加入php文件中:
- ini_set("display_errors", "On");
- error_reporting(E_ALL | E_STRICT);
注意:
第一点,修改配置文件php.ini后一定要重启服务。
第二点,error_reporting的值可以随意修改,建议按照你的项目开发情况来修改:是正在开发中?还是已经上线了?error_reporting具体的值有哪些?下面的拓展知识会讲到。
拓展知识:
或许有一些看了上面的设置,也不是很明白,下面给大家再详细的说一下:error_reporting代表错误级别,display_errors代表是否显示错误提示。
error_reporting错误级别包括以下这些:
E_ALL - 所有错误和警告(包括PHP 5.4.0中的E_STRICT)
E_ERROR - 致命的运行时错误
E_RECOVERABLE_ERROR - 几乎致命的运行时错误
E_WARNING - 运行时警告(非致命错误)
E_PARSE - 编译时解析错误
E_NOTICE - 运行时通知(这些通常是警告,从您的代码中的错误,但它可能是故意的(例如,使用未初始化的变量和赖于它自动初始化为一个事实空字符串)
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_DEPRECATED - 警告代码在将来的PHP版本中不起作用
E_USER_DEPRECATED - 用户生成的弃用警告
error_reporting最常见的几种设置:
E_ALL (显示所有错误,警告和通知,包括编码标准。)
E_ALL & ~E_NOTICE (显示所有错误,通知除外)
E_ALL & ~E_NOTICE & ~E_STRICT 显示所有错误,通知和编码标准警告除外。)
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (仅显示错误)
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。