1、Le phpdbg_break_function() utilise testFunc() pour résoudre le problème.点中。
invite> r [Point d'arrêt n°0 dans testFunc() dans /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11, hits : 1] >00011 : fonction testFunc(){ 00012 : $i global ; 00013 : $i += 3 ; invite> s [L12 0x109eef620 EXT_STMT /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] >00012 : $i global ; 00013 : $i += 3 ; 00014 : echo "C'est testFunc ! i:" . $je, PHP_EOL; invite> 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 "C'est testFunc ! i:" . $je, PHP_EOL; 00015 : }
2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL.
invite> 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 "C'est testFunc ! i:" . $je, PHP_EOL; 00015 : } 00016 : invite> s [L14 0x109eef6c0 CONCAT "Ceci est 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] C'est testFunc ! je: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();
以上就是php方法断点的实现,大家学会后也赶快尝试下实例操作吧。