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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • npm 更改为淘宝镜像的方法[通俗易懂]

    npm更改为淘宝镜像的方法1、命令行临时使用指定镜像(淘宝)npm–registryhttps://registry.npm.taobao.orginstallexpress2、命令行永久更改使用指定镜像(淘宝)npmconfigsetregistryhttps://registry.npm.taobao.org以后npminstallexp…

    2022年4月16日
    2.8K
  • ubuntu命令行安装deb_ubuntu命令行安装deb软件

    ubuntu命令行安装deb_ubuntu命令行安装deb软件1、下载需要安装的deb包,输入以下命令安装:$sudodpkg-ipackage.deb2、查看package.deb包中的内容:$dpkg-cpackage.deb3、从package.deb包中提取信息:$dpkg-Ipackage.deb4、移除安装的deb包:$dpkg-rpackage5、…

    2022年10月21日
    3
  • Autodesk 产品

    Autodesk 产品

    2021年8月13日
    60
  • HTML5 canvas 捕鱼达人游戏

    在线试玩:http://hovertree.com/texiao/html5/33/html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠

    2021年12月24日
    63
  • 2021年最好用&完全免费的图片压缩网站、软件推荐(包括GIF)

    2021年最好用&完全免费的图片压缩网站、软件推荐(包括GIF)最近我有遇到一个很奇怪的问题因为我不是转用AppleMusic本地化听歌了????所以很多歌的歌曲信息都是我自己补充的,当然也包括封面但我在用iTunes把歌传到iPhone上来听的时候,有首歌的封面怎么都同步不过来我来回同步了几遍,还重新连接了几次,甚至换回了有线来同步,这个封面始终都还是同步不上…我就一直奇了怪了直到我想重新编辑一下封面,重新添加,我才发现…好家伙,一张封面竟然有18M!?比我MP3本身都要大了,难怪我添加不上呢完全被它小小的外表给欺骗了我后来把图片

    2022年6月18日
    24
  • iis服务器怎么设置exe网页,IIS环境服务器下网站防盗链具体怎么设置方法

    iis服务器怎么设置exe网页,IIS环境服务器下网站防盗链具体怎么设置方法IIS服务器防盗链具体怎么设置方法isapi_rewrite利用正则表达式进行替换规则的表示。进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。IIS服务器防盗链的方法是在httpd.ini里面加入如下语句Re…

    2022年7月23日
    8

发表回复

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

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