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(); (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐