学堂 学堂 学堂公众号手机端

PHP方法断点的实现过程及代码是什么

lewis 1年前 (2024-04-06) 阅读数 6 #技术
今天就跟大家聊聊有关“PHP方法断点的实现过程及代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“PHP方法断点的实现过程及代码是什么”文章能对大家有帮助。



1、使用 phpdbg_break_function()来给这个testFunc() 方法设置一个断点。当代码中调用这个函数的时候,就会进入这个断点中。

prompt>r
[Breakpoint#0intestFunc()at/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11,hits:1]
>00011:functiontestFunc(){
00012:global$i;
00013:$i+=3;

prompt>s
[L120x109eef620EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
>00012:global$i;
00013:$i+=3;
00014:echo"ThisistestFunc!i:".$i,PHP_EOL;

prompt>s
[L120x109eef640BIND_GLOBAL$i"i"/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
[L130x109eef660EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
>00013:$i+=3;
00014:echo"ThisistestFunc!i:".$i,PHP_EOL;
00015:}

2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL 。继续向下操作。

prompt>s
[L130x109eef680ASSIGN_ADD$i3/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
[L140x109eef6a0EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
>00014:echo"ThisistestFunc!i:".$i,PHP_EOL;
00015:}
00016:

prompt>s
[L140x109eef6c0CONCAT"ThisistestFunc!"+$i~1/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
[L140x109eef6e0ECHO~1/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
ThisistestFunc!i:4
[L140x109eef700EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
[L140x109eef720ECHO"\n"/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]

[L150x109eef740EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
>00015:}
00016:
00017:testFunc();

推荐操作系统:windows7系统、PHP5.6、DELL G3电脑


以上就是关于“PHP方法断点的实现过程及代码是什么”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。如果想要了解更多知识,欢迎关注博信,小编每天都会为大家更新不同的知识。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门