gpt4 book ai didi

php - 如何跟踪 PHP 中的变量变化

转载 作者:可可西里 更新时间:2023-10-31 23:32:02 25 4
gpt4 key购买 nike

美好的一天。

我一直致力于包含许多变量和 session 的项目,其中大部分工作都是“在幕后”通过 ajax 完成的。

问题是我尝试调试我的项目,但我找不到任何方法来跟踪和记录对特定变量所做的更改。

我一直在尝试使用 firephp 和 xdebug,但它们不会显示对变量进行更改的时间,只会显示其最终值。

有什么解决办法吗?

最佳答案

XDebug 可以跟踪变量变化,只需启用 xdebug.collect_assignmentsxdebug.collect_params,所以当您生成跟踪日志文件时,您应该可以看到变化。

示例配置:

xdebug.default_enable = 1           ; bool: The stacktraces will be shown by default on an error event.
xdebug.collect_vars = 1 ; bool: Gather information about which variables are used in a certain scope.
xdebug.show_local_vars=1 ; int: Generate stack dumps in error situations.
xdebug.collect_assignments=1 ; bool: Controls whether Xdebug should add variable assignments to function traces.
xdebug.collect_params=4 ; int1-4: Collect the parameters passed to functions when a function call is recorded.
xdebug.collect_return=1 ; bool: Write the return value of function calls to the trace files.
xdebug.var_display_max_children=256 ; int: Amount of array children and object's properties are shown.
xdebug.var_display_max_data=1024 ; int: Max string length that is shown when variables are displayed.
xdebug.var_display_max_depth=5 ; int: How many nested levels of array/object elements are displayed.
xdebug.trace_output_dir="/var/log/xdebug" ; string: Directory where the tracing files will be written to.

然后在您第一次分配变量之前或之后,通过将此添加到您的 PHP 代码中开始跟踪代码:

xdebug_start_trace();

然后可选择在您认为已经发生的地方添加 xdebug_stop_trace();

然后检查配置目录中生成的文件(由xdebug.trace_output_dir指定)。如果文件很大,使用 grep 按特定变量过滤它,例如

grep --color=auto variable trace-log.xt

或通过以下方式将其过滤成较小的文件:grep pattern trace-log.xt > smaller.log.txt


另一种选择是使用 phpdbg .

关于php - 如何跟踪 PHP 中的变量变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com