在 PHP 中,可以通过以下方式灵活控制不同级别的错误提示:
一、动态设置错误报告级别(代码中设置)
// 开启所有错误报告(开发环境推荐) error_reporting(E_ALL); // 关闭所有错误提示 error_reporting(0); // 显示除 Notice 外的所有错误 error_reporting(E_ALL & ~E_NOTICE); // 组合多个错误级别 error_reporting(E_ERROR | E_WARNING | E_PARSE);
二、显示控制设置
// 开启错误显示(开发环境) ini_set('display_errors', 1); // 关闭错误显示(生产环境必须) ini_set('display_errors', 0);
三、配置文件设置(php.ini)
; 开发环境配置 error_reporting = E_ALL display_errors = On ; 生产环境推荐配置 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = Off log_errors = On
四、常见错误级别常量
常量 : 说明
E_ERROR : 致命运行时错误
E_WARNING :运行时警告(非致命)
E_PARSE : 编译时解析错误
E_NOTICE :运行时提示信息
E_ALL : 所有错误和警告(PHP5.4+包含E_STRICT)
五、不同环境最佳实践
开发环境:
error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1);
生产环境:
error_reporting(E_ALL & ~E_DEPRECATED); ini_set('display_errors', 0); ini_set('log_errors', 1);
六、注意事项
1. 生产环境必须关闭 `display_errors`,可通过 `log_errors` 和 `error_log` 记录错误
2. 使用 `@` 运算符可临时抑制单个表达式的错误
3. 框架项目(如 Laravel)通常有自己的错误处理机制
4. E_DEPRECATED 用于提示未来版本将被废弃的特性
5. 使用 `set_error_handler()` 可自定义错误处理函数
可通过 phpinfo()查看当前服务器的详细错误配置状态。