加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-05-22 14:12:49 所属栏目:PHP教程 来源:
导读:就跟大家聊聊有关“PHP方法断点的实现过程及代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“PHP方法断点的实现过程及代码是什么&
就跟大家聊聊有关“PHP方法断点的实现过程及代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“PHP方法断点的实现过程及代码是什么”文章能对大家有帮助。
 
1、使用 phpdbg_break_function()来给这个testFunc() 方法设置一个断点。当代码中调用这个函数的时候,就会进入这个断点中。
 
prompt> r
 
[Breakpoint #0 in testFunc() at /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11, hits: 1]
 
>00011: function testFunc(){
 
 00012:     global $i;
 
 00013:     $i += 3;

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

prompt> s
 
[L12         0x109eef640 BIND_GLOBAL             $i                   "i"                                       /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
[L13         0x109eef660 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
>00013:     $i += 3;
 
 00014:     echo "This is testFunc! i:" . $i, PHP_EOL;
 
 00015: }
 
2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL 。继续向下操作。
 
prompt> s
 
[L13         0x109eef680 ASSIGN_ADD              $i                   3                                         /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
[L14         0x109eef6a0 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
>00014:     echo "This is testFunc! i:" . $i, PHP_EOL;
 
 00015: }
 
 00016:

prompt> s
 
[L14         0x109eef6c0 CONCAT                  "This is testFunc!"+ $i                   ~1                   /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
[L14         0x109eef6e0 ECHO                    ~1                                                             /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
This is testFunc! i:4
 
[L14         0x109eef700 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
[L14         0x109eef720 ECHO                    "\n"                                                           /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
 
 
[L15         0x109eef740 EXT_STMT                                                                               /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]
 
>00015: }
 
 00016:
 
 00017: testFunc();
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!