PHP代码调试_php调试工具

PHP代码调试_php调试工具PHP语言没有多线程、同步等概念,大多由函数和类组成,数据类型和语法比较简单,利用其丰富的内置函数就可以实现大部分的调试功能。因此,PHP代码比较容易理解,也很容易调试。php代码调试的实现方式主要有两种:通过PHP的调试函数实现通过断点调试工具实现1.PHP的调试函数对于一般的PHP代码,使用几个常用的输出函数就可实现代码调试。常

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

PHP语言没有多线程、同步等概念,大多由函数和类组成,数据类型和语法比较简单,利用其丰富的内置函数就可以实现大部分的调试功能。因此,PHP代码比较容易理解,也很容易调试。
php代码调试的实现方式主要有两种:通过PHP的调试函数实现和通过断点调试工具实现。
1. PHP的调试函数
对于一般的PHP代码,使用几个常用的输出函数就可实现代码调试。常用的函数有echo、print、print_r、var_dump、var_export、die、exit等等。
其中,echo 和 var_dump 最常用。
如果要在输出变量的值后终止流程,可使用 die 或 exit 语句。die 和 exit 在功能上基本是等价的,都是语句结构,而不是函数。下面的写法都是正确的:
exit;
exit();
exit(0);
exit(‘程序中止!’);
2. 断点调试
一般情况下,利用PHP的输出函数就能轻松调试大多数问题,但是有时,还需要更强大有效的调试手段,这就需要利用一些支持断点调试的工具。
断点调试,也叫单步调试,是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步自动跟踪程序执行的流程,根据变量的值,找到错误的原因。
很多集成的开发工具(IDE),如Zend Studio、PhpStorm等,都支持断点调试,在需要调试的代码行设置断点,然后按预设的快捷键步进。
当代码涉及到很多文件时,比如在MVC中,Controller层的代码可能会设计很多个文件,这些文件包括框架的核心配置初始化文件、类文件、路由控制文件等,如果用手工调试会比较累。另外,某些应用可能比较复杂,我们并不清楚流程是怎样的,也不知道究竟哪一步出了问题,该去哪里追踪变量。如果用手工方法一步一步地输出变量,调试的效率就会很低。在这些情况下,就轮到断点调试工具上场了。
常用的调试工具有 zend debuger 和 xdebug,据说 zend debugger 不支持php5.3以上的版本,故这里我们只讲解 xdebug 调试器的使用。
以Windows系统为例,到 xdebug 官网(
http://xdebug.org/download.php)下载和PHP版本对应的xdebug扩展,要注意xdebug扩展所适用的PHP版本号、TS(线程安全)版还是NTS(非线程安全)版,以及VC6版本还是VC9版本,这些都应该和安装的PHP对应,否则可能出现问题。
下载和PHP对应的xdebug扩展后,将php_xdebug.dll文件放到php的ext扩展目录下,编辑php.ini配置文件,增加下面的配置:
[XDebug]
; 用中括号括起来的是模块名称,它会在你的phpinfo信息中作为分隔标题显示出来
zend_extension = "E:\xampp\php\ext\php_xdebug.dll"
; 设置php_xdebug的DLL文件路径
xdebug.auto_trace=On
; 将php对函数调用的监测信息用文件格式输出
xdebug.collect_params=On
; 将php对函数调用的参数加入到函数过程调用的监测中
xdebug.collect_return=On
; 将函数调用的返回值加入到函数过程调用的监测中
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
; 这是效能监测的设置开关
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "E:\xampp\tmp"
;这是效能监测信息开启的情况下,写入到profiler_output_dir设置的路径中,会生成一个相应的文件
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
; 开启远程调试
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
; 远程主机地址
xdebug_remote_port=9000
; 主机的端口
xdebug.trace_output_dir = "E:\xampp\tmp"
;设置的函数调用监测信息的输出路径
其实,在xampp中的php已经包含了对应版本的xdebug扩展,只不过,在php.ini配置文件中,关于该扩展的配置项都加了注释,我们只需修改php.ini,将注释取消即可,也就是删除代码行行首的分号注释符,修改后的配置项如下:

[XDebug]

zend_extension = “E:\xampp\php\ext\php_xdebug.dll”

xdebug.profiler_append = 0

xdebug.profiler_enable = 1

xdebug.profiler_enable_trigger = 0

xdebug.profiler_output_dir = “E:\xampp\tmp”

xdebug.profiler_output_name = “cachegrind.out.%t-%s”

xdebug.remote_enable = 0

xdebug.remote_handler = “dbgp”

xdebug.remote_host = “127.0.0.1”

xdebug.trace_output_dir = “E:\xampp\tmp”

保存php.ini后,重启web服务器。打印phpinfo,在输出的信息页面,查找字符串xdebug,如果有如下信息,就说明php的xdebug扩展开启成功。
PHP代码调试_php调试工具

xdebug安装成功后,我们还需要对集成开发工具(如Zend Studio)进行配置,使其默认使用 xdebug 调试器进行断点调试。
关于如何在 Zend Studio 中配置和使用 xdebug 断点调试工具,可参考:
http://blog.csdn.net/lamp_yang_3533/article/details/52661749

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186834.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dropdownlist1 绑定 value值

    dropdownlist1 绑定 value值DropDownList1.Items.Add(newListItem(dr[“status”].ToString(),dr[“status_Id”].ToString()));里面的两个参数都必须是string类型的,第一个参数是text,第二个参数是value转载于:https://www.cnblogs.com/tiancai/archive/2011/08/1…

    2022年7月18日
    16
  • BM3D算法介绍「建议收藏」

    BM3D算法介绍「建议收藏」论文名称:Imagedenoisingbysparse3Dtransform-domaincollaborativefiltering下载地址:https://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdfhttps://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdf目录基本原理FlowchartofBM3Dstep1step2FastAndEfficient.

    2022年5月30日
    44
  • windows服务创建工具srvany.exe介绍

    windows服务创建工具srvany.exe介绍srvany.exe介绍 srvany.exe是MicrosoftWindowsResourceKits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。 

    2022年5月20日
    94
  • 2020最新版MySQL数据库面试题(二)[通俗易懂]

    2020最新版MySQL数据库面试题(二)

    2022年2月14日
    48
  • dos命令运行java代码_如何制作ddos攻击

    dos命令运行java代码_如何制作ddos攻击dos攻击:拒绝服务攻击具体的原理不再多说我这里是java实现的推荐使用python做这种脚本,不要用java我写的仅供参考学习,请勿做坏事packagedos;importjava.net.httpurlconnection;importjava.net.url;importjava.net.urlconnection;importjava.util.arraylist;import…

    2022年9月1日
    4
  • 绝对成交课程培训_成交的5大关键

    绝对成交课程培训_成交的5大关键影响力集团培训讲师孟昭春http://blog.sina.com.cn/mengzhaochun第一天下午一个思想:把自己能把握的事情把握就能实现把握不了的目标。1.孟老师从自身做法出发讲出:他下面的销售人员问他问题他从来不给答案,只是指墙(墙上有5问5答)。2.大客户特点:金额大、周期比较长、内部决策者多。3.用户的四个拒绝:我不需要、我不着急、我不相信、我没钱。(70%顾客…

    2025年8月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号