php - ini_set("display_errors", "on") 和 error_reporting(E_ALL) 的区别
问题描述
我尝试使用php.ini
文件启用错误显示,但这不起作用。
然后尝试添加error_reporting(E_ALL)
,没有用,之后我尝试了ini_set("display_errors", "on")
,这个选项对我有用。我的问题是这些方法如何工作以及何时使用哪个选项?
解决方案
ini_set()
php.ini
一个在运行时为该本地脚本设置配置的简单函数。
PHP的文档说
设置给定配置选项的值。配置选项将在脚本执行期间保留此新值,并将在脚本结束时恢复。
所以基本上如果你的 PHP 配置没有启用 error_reporting,你可以简单地在你的脚本顶部启用它:
ini_set('display_errors', '1');
但ini_set()
不排除 PHP 错误,您可以设置 PHP 支持的任何配置。
ini_set('SMTP', 'smtp.gmail.com');
ini_set('smtp_port', 25);
错误报告()
根据 PHP 手册
error_reporting — 设置报告哪些 PHP 错误
该error_reporting
函数设置错误对最终用户的可见性级别。
这些是您获得的一些报告选项以及它们所代表的含义,大多数都非常简单:
0
- 关闭所有 PHP 错误显示
E_ALL
- 显示所有错误
E_ERROR
- 致命的运行时错误。这些表示无法恢复的错误,例如内存分配问题。脚本的执行被停止。
E_WARNING
- 运行时警告(非致命错误)。脚本的执行不会停止。
E_PARSE
- 编译时解析错误。解析错误只能由解析器生成。
E_NOTICE
- 运行时通知。指示脚本遇到了可能指示错误的情况,但也可能在正常运行脚本的过程中发生。
我觉得有趣的一点旁注,记住这些关键词是常量,它们包含整数(数字),而不是字符串。例如:
echo E_ALL; // 32767
echo E_ERROR; // 1
echo E_WARNING; // 2
echo E_PARSE; // 4
echo E_NOTICE; // 8
您可以在此处查看 PHP 的所有预定义常量。
推荐阅读
- vue.js - 属性或方法 X 未在实例上定义,但在渲染期间被引用
- javascript - Webkit 目录上传问题
- git - 失去对存储库的访问权限后是否可以使用“git reset hard”?
- node.js - Heroku 构建脚本错误:未能推送一些参考
- azure - 我想创建一个 Vnet 位于不同资源组中的子网
- reactjs - 需要对 d3selection.DATA() 做一个简单的说明
- flutter - Flutter ios和状态栏文字颜色
- java - 超出最大游标 SQLException--配置问题或游标泄漏?
- html - 如何将一个 div 放在另一个 div 下方并填充大小?
- javascript - “eosio.token”智能合约的传输功能不起作用