近几年面试了不少同行的兄弟,总会问及一些没有标准答案的问题,初衷就是想跟他们交流、探讨工作以后对一些事情的看法、对出现问题的解决方法以及思路。比如每次必问:你在工作中怎么尽快入手一个系统?你所习惯或常用什么样的方法调试程序或者bug?

这些问题在不同层次所反馈回来的也不尽相同,所以今天有必要单独写篇自己对这些问题的总结,意在交流,若有差错请点评指正。

首先谈谈怎么调试吧,可能大伙有的还停留在学校时老师教过使用函数 print_r 进行打印,最典型的写法如:

1
2
3
echo "<pr>";
print_r($arr);
echo "</pr>";

这种方法没错,但个人认为通过 pr 进行格式化输出完全没必要,直接 print_rvar_dump 你要打印的变量、数组乃至一个对象… 最后还可以使用 die() 或者 exit() 进行中断掉,这样个也挺美观的,如果输出的格式还不算清晰的话你仍然可以右击 查看源代码 查看。

在说说几个常用的调试函数吧,尤其在用框架写的应用程序中感觉还是蛮实用的。

1
get_defined_vars   //返回所有已定义变量所组成的数组
1
get_defined_constants   //返回所有常量的关联数组,键是常量名,值是常量值
1
get_class_vars  //返回由类的默认属性组成的数组
1
get_class_methods  //返回当前类下所有 `public` 方法

未完待续…