PHP 报错怎么开启

平时做网站开发,不管是做个小个人博客还是商家的展示页,写代码时难免出问题,PHP项目里遇到页面空白、功能失效,十有八九是报错被关掉了——默认配置里PHP会把错误藏起来,直接看页面根本不知道哪错了。要把这些“隐藏的错误”揪出来,得先学会开启PHP报错,跟着生活化的步骤走,新手也能快速上手。

先搞懂:为什么PHP默认藏错误?

就像家里的电表,平时正常走不显眼,只有跳闸、出问题了才亮红灯。PHP默认关闭报错,是怕把敏感信息(比如数据库密码、服务器路径)暴露给用户,也避免普通用户看不懂技术错误、以为网站“崩了”。但开发时要是看不到错误提示,就像医生看病不看检查单,根本不知道哪里出了问题。

PHP 报错怎么开启

不同场景,开启报错的方法不一样

开启PHP报错的方法,要看你用的是什么运行环境,毕竟本地电脑和服务器的操作逻辑不一样,就像家里的路由器和公司的服务器,设置方式肯定不同。

本地开发用:改PHP配置文件(最通用)

本地开发常用XAMPP、WAMP、MAMP这类工具,核心是改PHP的php.ini文件。打开这个文件后,找两个关键参数:

  • display_errors:把后面的Off改成On,意思是“允许把错误显示在页面上”;
  • error_reporting:把后面的数值改成E_ALL,这是PHP里的“全量错误开关”,不管是语法写错(比如少写了个分号)、变量没定义,还是逻辑错了,都会提示。

改完后记得重启本地服务器,比如XAMPP的Apache模块点“停止”再“启动”,设置就生效了。举个例子:要是你写了echo $name;但没定义$name,开启后页面会直接提示“未定义变量: name”,比空白页好查多了。

临时快速看:加一行代码(不用改配置)

要是不想动配置文件,或者想只在某个测试页面开报错,直接在PHP文件最顶部加一行代码就行:

error_reporting(E_ALL); ini_set('display_errors', 1);

不管是本地还是服务器的临时测试,这行代码都管用。比如你测试一个支付功能,临时加这句,要是参数传错了,马上能看到“缺少必填参数: order_id”,不用到处找配置文件。

线上服务器:别直接开,用日志更安全

本地测试完上线,绝对不能直接开display_errors——用户会看到敏感信息。这时候可以开“错误日志”:把php.ini里的log_errors改成On,error_log指定一个日志文件路径,错误会存在这个文件里,只有你能看。就像外卖员送错餐,不会让用户知道地址,只会把错的记录留在后台日志里,方便你事后查问题。

开启后,常见错误提示怎么看?

刚开启报错,可能会看到一堆红字,别慌,都是“指路牌”。比如“Parse error: syntax error, unexpected 'echo' in test.php line 10”,意思是第10行语法错了,碰到了不该有的echo,直接去改那行就行;要是提示“Notice: Undefined index: age in test.php line 15”,就是第15行用了没传过来的age参数,检查一下表单或接口的传参就行。

开启PHP报错,就是给你的代码找“放大镜”,从“不知道哪里错”变成“知道错在哪”,不管是新手练手还是老开发者调试,都是必备的小技巧。平时开发时,本地用全量错误,线上用日志,既高效又安全。

上一篇 JavaScript 数组怎么过滤