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