创新易联欢迎您!16年高端网站建设品牌

网页技术大讲堂:如何调试PHP程序

日期:2014-08-26 | 来源:易联网站建设公司 | 阅读:
       深圳网站建设www.innont.com )作为市场资深品牌,8年来,立足广东,面向全国,已服务过3000多家具有顶级发展潜力的企业,并一直保持良好的合作伙伴关系,成为中国第一高端精品网站设计策划机构,网站建设第一品牌!
 
 
 

       基本调试:
1. 打开调试功能: php.ini 里 设置error_reporting = E_ALL以及 display_errors = On 重启 web服务(apache)
2. 刷新错误的页面 查看错误提示 行号 文件名
3. 打开该文件 定位到出错行. 比如代码 echo $abc[2];
4. 理解错误:
a. 查看手册 理解错误含义 要能理解首先要理解语言 比如最简单的 Undefined index 2 意思是数组不存在该下标 也就说明你访问了某个数组不存在的元素
b. 如果已经知道如何改 就直接修改, 比如改成 echo $abc[0];
c. 不知道就显示变量内容 在同样的地方 加入 var_dump($abc); 刷新页面 看看$abc这个东西到底包含了什么元素
d. 认为本该存在 $abc[2]的, 那就寻找错误源, 往上回朔, 或者用 var_dump(debug_backtrace());
必要的时候 var_dump($_POST, $_GET, $_COOKIE, $_SERVER....)
本人未用过单步调试 (step by step) 如果使用调试器相对简单一点 可以暂停下来 看看变量的内容 到底是不是 中应该出现的值, 如果不是 又是哪里产生这个值的
注意留意什么是环境
环境:
       为什么全世界那么多人没事就你的有问题? 你的问题爱上了你 还是你爱上了你的问题?
其实"一方水土养一方人", 你的"环境"养你的bug.
平时阅读书本/手册, 注意记录整理什么是"环境".
$_GET $_POST $_COOKIE $_SESSION $_SERVER 这些是程序运行的至关重要因素 当然还包括你自己搞出来的 $GLOBALS, 都可以var_dump他们 看看内容.
还有strtolower/strtoupper之类 跟setlocale()函数有关, 而默认值在linux下跟 getenv("LANG") getenv("LC_ALL") 之类有关(putenv不一定起作用)
       还有其他的 比如php.ini的配置.
还有web服务器配置, 比如apache支持某些函数而在别的服务器下就不支持
btw1: 你的调试能力跟你的编码能力是相互相成的, 根据你的编码经验你觉得还有什么该注意的 可以提出来
btw2: 有些你或许觉得很简单很平常, 但是想想你自己是不是真的做到了。
 
 
 

       本文由深圳网站设计公司:创新互联整理,转载时请保留此链接,谢谢合作!


—— 微信公众号 ——

热门标签