要关闭 php 8.4.1 的 deprecated 警告,需在 php.ini 中设置 error_reporting = e_all & ~e_deprecated & ~e_notice & ~e_strict,并确保 display_errors 按环境合理配置、log_errors = on,修改后重启 web 服务或 php-fpm 才生效。

要关闭 PHP 8.4.1 的 Deprecated 警告,核心是调整错误报告级别,而不是禁用所有错误——这样既能隐藏废弃提示,又保留关键问题(如致命错误)的可见性。
定位并编辑正确的 php.ini 文件
PHP 8.4.1 在 Windows 下通常不自带 php.ini,需手动配置:
- 进入 PHP 安装目录(如
C:\php),检查是否存在php.ini;若无,复制php.ini-development或php.ini-production并重命名为php.ini - 打开命令行,执行
php --ini,确认 “Loaded Configuration File” 显示的路径是你即将编辑的文件 - 也可新建
info.php(内容为<?php phpinfo(); ?>),通过浏览器访问,搜索 “Loaded Configuration File” 二次验证
修改 error_reporting 设置
在 php.ini 中找到 error_reporting 行,将其改为:
说明:
-
E_ALL包含所有错误类型 -
~E_DEPRECATED明确排除废弃警告(这是你最关心的) -
~E_NOTICE和~E_STRICT建议一并排除,避免开发中干扰 - 不要设为
0或E_ERROR,否则会漏掉严重问题
确保 display_errors 关闭或按需开启
该设置控制错误是否输出到页面:
- 生产环境推荐:display_errors = Off(彻底隐藏所有错误输出,更安全)
- 开发调试时可用:display_errors = On,配合上面的
error_reporting,只显示非废弃类错误 - 无论开或关,都建议保持 log_errors = On,让错误记录进日志便于排查
保存后必须重启服务才能生效
修改 php.ini 不会热更新:
- Apache:重启 httpd 服务(如宝塔面板点「重载配置」或运行
httpd -k restart) - Nginx + PHP-FPM:重启 PHP-FPM 进程(宝塔中点「重启」,或命令行
killall php-fpm && /www/server/php/84/sbin/php-fpm) - PHP 内置服务器(
php -S):直接关闭终端再重新启动命令
验证是否生效
别跳过这步:
- 刷新
info.php页面,搜索error_reporting和display_errors,确认值已更新 - 命令行快速验证:
php -r "var_dump(error_reporting());"应输出类似int(32759)(即 E_ALL 去掉指定项后的数值) - 写个测试脚本调用废弃函数(如
php -r "function_exists('mysql_connect') && mysql_connect();"),确认不再输出 Deprecated 提示
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











