设为首页 收藏本站
查看: 650|回复: 0

[经验分享] php 断点调试工具配置之三

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-28 15:34:50 | 显示全部楼层 |阅读模式
[size=0.76em][size=1.5em]调试简单的脚本或 Web 应用程序
[size=0.76em]现在,您的工作空间中已经有一些样例项目。您应该已经熟悉 PHP Debug 透视图。您已经成功安装了 XDebug 或 Zend Debugger(或同时安装了两者),并进行了适当的配置和检验。最后,配置好 PDT,使它可以使用已安装的调试器。完成所有这些操作后,现在可以开始调试您的第一个 PHP 脚本了。
[size=0.76em][size=1.2em]设置断点来调试脚本
[size=0.76em]要查看调试器的工作原理,最好设置一个断点,调试器将在此处停止。当调试器在某处断点停止时,可以使用 PHP Debug 透视图中的各个视图查看变量值。还可以使用 Debug 视图中的按钮对代码进行单步调试。
[size=0.76em]因此在 helloworld.php 脚本的第 7 行设置一个断点。要执行这个操作,选择 helloworld.php,然后选择Run > Debug As > PHP Script。如果这是第一次调试,Eclipse 将询问是否希望自动切换到 PHP Debug 透视图。如果希望在调试一个 PHP 脚本时激活 PHP Debug 透视图,则单击Yes,然后选择Remember my decision,如下所示。
  
[size=0.76em]图 15. 自动切换到 Debug PHP 透视图
DSC0000.jpg


[size=0.76em]开始调试后,PHP 脚本将在第一行代码处停止。这是默认配置。您可以在这里单步调试代码或继续前进到下一个断点。如果继续前进到在第 7 行设置的断点,Debug 视图会告诉您在一个断点处暂停。
  
[size=0.76em]图 16. 断点处暂停(第 7 行)
DSC0001.jpg


[size=0.76em]在断点处暂停时,查看 Variables 视图(参见图 17)。$name和$i两个变量都出现在循环中,并且可以查看它们的值。$name变量包含字符串world,而$i变量被设置为0。
  
[size=0.76em]图 17. helloworld.php 第 7 行的变量
DSC0002.jpg


[size=0.76em]由于断点位于循环的内部,必须在循环的下一次迭代中才能执行到下一个断点。您可以在 Variables 视图中看到$i值在逐渐变大。
[size=0.76em]要继续执行而不在每次迭代时停止,请打开 Breakpoints 视图,如图 18 所示。通过清除 helloworld.php(第 7 行)旁边的复选框,可以临时禁用断点。现在,当再次执行到下一个断点时,调试器将跳过以后的所有迭代,并运行直至脚本结束。
  
[size=0.76em]图 18. helloworld.php 中的断点
DSC0003.jpg


[size=0.76em]您可以添加变量并修改代码进行试验,查看调试器的行为。

 

[size=0.76em] 

[size=0.76em][size=1.2em]调试 Web 应用程序
[size=0.76em]有时您可能希望使用 PHP 构建一个 Web 应用程序,并在服务器上调试 PHP 脚本。在服务器上调试 PHP Web 页面可以查看服务器变量(比如$_GET和$_POST)是如何设置的,因此可以了解这些变量的值并且可以逐页进行调试。
[size=0.76em]要调试一个 PHP 应用程序,请使用 webDebugExample 项目。这是个简单的示例,允许在输入字段键入值,然后把表单提交给 results.php 脚本处理。完成这个练习后,可以了解如何使用来自表单的变量名和变量值填充$_POST变量。
[size=0.76em]选择 enterGreeting.php,然后选择Run > Debug As > PHP Web Page。如果这是第一次运行调试器,系统将提示您启动文件的 URL。这里,输入文件的完整 URL,注意,它位于 Web 资源所在的位置。例如,我的 URL 是 http://localhost/~nagood/webDebug/enterGreeting.php。接下来,在 results.php 文件的第 14 行设置一个断点。
  
[size=0.76em]清单 9. 在第 14 行设置一个断点


                    
print ("<b>Your greeting is:  <i>" . $gm->getFormalGreeting()
. "</i></b>");

[size=0.76em]在启动 PHP Web 应用程序时,调试器将停在 enterGreeting.php 文件的第一行。您可以通过单步调试查看调试器的操作,或一直执行到结束。
[size=0.76em]在表单的文本输入框输入一个值,然后单击Submit。现在调试器停在 results.php 文件的第一行。执行到脚本中第 14 行设置的断点,将看到$gm变量使用一个值填充,而$_POST数组包含来自前一页面的值。
  
[size=0.76em]图 19. results.php 中的变量
DSC0004.jpg


[size=0.76em]从第 14 行开始,可以执行到程序结束,或可以单击 Debug 视图中的Step Into以便进入到GreetMaster2000类的getFormalGreeting()函数。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356705-1-1.html 上篇帖子: 【代码】php 启动时报错的解决办法 下篇帖子: CI模板中php脚本的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表