自PHP4和Cake 1.3以来,我一直在使用debug($data);
来调试CakePHP中的模型输出等内容。
但是,自升级到PHP5.4以来,我注意到debug($data)
似乎并不总是有效。例如,今天我做了一个直截了当的$data = $this->Model->find('all');
,debug($data);
的内容似乎是空的。没有错误,只是HTML输出中的一个引用,我调用了调试和行号,然后没有调试输出。
但是,如果我在完全相同的查找上运行Debugger::dump($data);
,它可以找到并查看整个输出。
似乎只有在$data
拥有大量数据(例如,100多条记录)时才会发生这种情况,但我在PHP5.4之前使用了这个大小的数据集,并且从来没有出现任何问题没有错误,内联或在apache / php日志中表明存在任何内存问题,我将调试设置为3。
有谁知道为什么会这样?我可以轻易地开始使用Debugger::dump($data);
,但每次尝试都需要额外的一点,我想知道为什么我不能再使用deubg();
了。
答案 0 :(得分:6)
如果你的应用程序的其余部分是UTF-8,那么db记录中的非utf8编码数据就会发生这种情况。
debug()
然后只输出“无”。不过,var_dump()
,print_r()
和其他php内部方法仍应打印输出。
您通常可以使用iconv()等将它们重新编码为utf8。