PHP 如何调试

写代码就像做菜,哪怕用再顶级的食材,火候不对、盐放多了,做出来的菜也会难吃。写PHP代码也是一样,哪怕功能逻辑想的再完美,运行出问题是常有的事,这时候就需要“调试”——相当于给代码做“体检”,找出哪里出错了。

先看最简单的:把错误“摆出来”,别让它躲起来

很多新手写代码时,遇到空白页面、功能不生效的情况,会一头雾水,这大概率是错误信息被隐藏了。PHP默认会把错误提示关掉,防止把敏感信息暴露给用户,对开发者来说却特别不方便。

PHP 如何调试

怎么把错误“放出来”?可以在代码最开头加两行简单的设置:

`php

error_reporting(E_ALL);

ini_set('display_errors', 1);

`

比如你写了一段计算工资的代码,不小心把“$total”写成了“$totl”,运行后如果没有错误提示,页面就是空白;加上这段设置后,页面会直接提示“Undefined variable: totl”,一眼就能找到变量名写错的问题,就像炒菜时闻到糊味,知道火开太大了。

不过这招只适合本地开发,正式上线的网站可别加——万一被人看到错误信息,可能会趁机找漏洞。

用“打印”当放大镜,看清楚变量是啥

有时候代码能跑,但结果不对,比如你算出来的员工考勤天数是30,可实际只有28天,这时候错误不是语法问题,而是逻辑不对,就像你按菜谱做蛋糕,步骤都没错,但加的糖是盐,味道自然不对。

这时候可以用PHP自带的“打印函数”,把变量的值直接显示出来。最常用的是var_dump(),它会把变量的类型、值都写得明明白白。比如你写了一段统计订单的代码,加一行var_dump($order_list);,运行后就能看到$order_list是数组还是字符串,里面有多少个元素,是不是多了一个测试数据。

还有更简洁的print_r(),它会把数组的内容整理成易懂的格式,适合看大段数据。这俩函数就像做菜时尝一口汤,不用等菜全做好,就能知道盐多了还是水少了。

用断点一步一步走,像查地图一样找路

如果代码逻辑特别复杂,比如要同时处理用户登录、数据查询、页面跳转,这时候用打印变量的方法,可能会被几十行输出信息搞晕,就像走迷宫,光看终点不知道哪一步错了。

这时候可以用“调试工具”,相当于给代码装了导航——最常用的是Xdebug,它能和开发工具(比如VS Code、PhpStorm)配合,在代码里设“断点”,运行到断点时会停下来,你可以一步步执行每一行代码,看每一步变量怎么变,就像走迷宫时每走一步都能知道自己在哪、周围有什么路。

举个例子:你写了一段用户下单的代码,断点设在“检查库存”那一行,运行到这里时,你能看到“库存变量”的值是多少,是不是刚好够用户买的数量,如果库存是10,用户买了11,那就是这里的判断逻辑写错了,而不是后面的支付环节出问题。

别忘查日志,就像做饭留个“菜谱笔记”

如果代码在本地运行没问题,上传到服务器就出错,这时候可能是服务器的配置和本地不一样,比如本地允许用旧的语法,服务器不允许,这时候可以看“错误日志”。

PHP的错误日志会自动存在服务器的指定文件里,不同服务器位置不一样,有的在/var/log/php_errors.log,有的在网站目录里的error_log文件。这些日志会把你在本地看不到的错误都记下来,就像你在餐厅吃完饭后,服务员给你列了所有的问题,比如“食材不够新鲜”“菜炒的时间太长”,直接看日志就能找到问题,不用反复试。

调试不是“找碴”,而是帮你把代码改得更顺,就像做菜时调整火候和调料,多试几次就能做出好吃的菜。不管是新手还是老开发者,调试都是写PHP的必备技能,慢慢用熟这些方法,遇到问题就不会再慌了。

上一篇 Swift编程语言核心特性与应用场景知识科普