Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何突破PHP中的变量更改?_Php_Variables_Xdebug - Fatal编程技术网

如何突破PHP中的变量更改?

如何突破PHP中的变量更改?,php,variables,xdebug,Php,Variables,Xdebug,有没有办法在变量更改时中断? 例如,变量$abc在许多不同的函数和文件中被使用和修改,当我调试一个大型项目时,我想知道它何时被准确地更改 设置断点只能告诉我该点的值,但我想知道该变量的整个生命周期。请搜索“php调试器” 但我不用。在源代码库中搜索该变量,然后使用var_dump()在变量发生更改时显示,这相对比较容易。您知道如何使用记事本++中的“搜索所有文件”功能吗 然后,一旦发现问题,使用“撤消”来恢复文件,并将var_dumps()取出 我还经常在需要停止的地方放置一个骰子,这样我就可以

有没有办法在变量更改时中断?
例如,变量$abc在许多不同的函数和文件中被使用和修改,当我调试一个大型项目时,我想知道它何时被准确地更改


设置断点只能告诉我该点的值,但我想知道该变量的整个生命周期。

请搜索“php调试器”

但我不用。在源代码库中搜索该变量,然后使用var_dump()在变量发生更改时显示,这相对比较容易。您知道如何使用记事本++中的“搜索所有文件”功能吗

然后,一旦发现问题,使用“撤消”来恢复文件,并将var_dumps()取出

我还经常在需要停止的地方放置一个骰子,这样我就可以确定某个特定的var_转储在哪里执行

我在我的ini文件中保留了一个调试变量,并且有办法轻松地打开和关闭它,然后可以使用if($ini['Debug'])var_dump($myvar)监视某些变量


这样做比使用调试器有一些好处。首先,代码运行得更快,这取决于代码的复杂性。第二,不管你的代码有多奇怪,它总是能工作的,然而有时有些事情会愚弄调试器。

我想你应该考虑设置一个条件断点。@drumberg如果我在数百个地方有这个变量,它就不会工作了……也许
spl\u object\u hash()
就是你要找的for@djay你知道我如何将它与XDebug结合起来吗?当然,如果项目不大,你可以使用var_dump…当你在运行“在所有文件中查找”后出现数百个实例时,你就不想再使用var_dump了。如果有那么多实例,调试器可能没有多大帮助,因为它会到处停止???调试器更方便,但仍然不够有用。我不需要到处键入var_dump(),但我仍然需要设置断点,并始终跨入/跨过。有时我甚至使用二分法来精确定位变量变化的位置。。。功能体可以非常非常长…哈,是的。遗憾的是,我正在重用的项目没有很好的文档记录。它有大约50万行代码,包括PHP、HTML和JS。我发现很难阅读和理解每个变量或函数的作用。事实上,我以前没有使用PHP调试器。。。