4

自 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();了。

4

1 回答 1

6

如果您的应用程序的其余部分是 UTF-8,那么您的数据库记录中的非 utf8 编码数据可能会发生这种情况。 debug()然后将只输出“无”。var_dump()print_r()但其他 php 内部方法仍应打印输出。

您通常可以使用 iconv() 等将它们重新编码为 utf8。

于 2013-01-21T10:11:49.747 回答