在PHP中,在整个程序运行时打印/记录变量的状态?

在PHP中,在整个程序运行时打印/记录变量的状态?,php,debugging,xdebug,Php,Debugging,Xdebug,所以我有一段很长的PHP代码,它使用循环/if语句修改全局数组 是否有任何直接的方法可以在每次更改时打印数组的值?也许使用XDebug 我更喜欢文本日志,而不是使用XDebug进行逐行调试。好的,一种通过输出JS进行调试的方法: 安装Firebug,然后您可以使用console.log(…)和console.debug(…)等()。Xdebug支持函数跟踪,它将每个函数调用转储到磁盘上的文件(请参阅)。自最新版本以来,还可以将函数跟踪配置为显示变量的更改。您可以使用xdebug.collect_

所以我有一段很长的PHP代码,它使用循环/if语句修改全局数组

是否有任何直接的方法可以在每次更改时打印数组的值?也许使用XDebug


我更喜欢文本日志,而不是使用XDebug进行逐行调试。

好的,一种通过输出JS进行调试的方法:
安装Firebug,然后您可以使用
console.log(…)
console.debug(…)
等()。

Xdebug支持函数跟踪,它将每个函数调用转储到磁盘上的文件(请参阅)。自最新版本以来,还可以将函数跟踪配置为显示变量的更改。您可以使用xdebug.collect_分配设置(请参阅:)启用该设置。

如果没有xdebug,您可能必须定义自定义对象(实现
ArrayAccess
)而不是数组,然后登录
偏移集
,快速模拟启动:

   class ArrayLogger implements ArrayAccess {
       protected $array;
       public function __construct(array $array){
           $this->array = $array;
       }
       public function offsetGet($idx){
           return $this->array[$idx];
       }
       public function offsetExists($offset) {
           return isset($this->array[$offset]);
       }
       public function offsetUnset($offset) {
           unset($this->array[$offset]);
       }
       public function offsetSet($offset,$value){
           //do some logging here
           debug_print_backtrace();
           var_dump($this->array,$offset,$value)
           //and actually, you may need to inspect $value for arrays. & convert them all to ArrayLogger's before setting this:
           $this->array[$offset] = $value;
       }
   }

这对他学习PHP有什么帮助?高级:
console.log()