4

PHP4 と Cake 1.3 以来、私はdebug($data);CakePHP のモデル出力などをデバッグするために使用しています。

しかし、PHP5.4 にアップグレードしてから、それがdebug($data)常に機能するとは限らないことに気付きました。たとえば、今日私は簡単なことをしましたが$data = $this->Model->find('all');、の内容はdebug($data);空のようです。エラーはありません。デバッグと行番号を呼び出したという事実へのHTML出力の参照だけで、デバッグ出力はありません。

ただし、Debugger::dump($data);まったく同じ検索で実行すると、検索が機能し、出力全体が表示されます。

かなりの量のデータ (たとえば、100 以上のレコード) がある場合にのみ発生しているようですが$data、PHP5.4 より前のこのサイズのデータ​​セットで作業したところ、問題はなく、インラインまたは apache にエラーはありませんでした。 /php ログは、メモリの問題があることを示しており、デバッグを 3 に設定しています。

これがなぜなのか誰にも分かりますか?もちろん簡単に使い始めることはできDebugger::dump($data);ますが、毎回試してみる必要があるのは少し余分であり、なぜもう使えないのか知りたいdeubg();です.

4

1 に答える 1

6

これは、データベース レコード内の非 utf8 エンコード データで発生する可能性があります。アプリケーションの残りの部分が UTF-8 である場合です。 debug()その後、「何も」出力されません。var_dump()print_r()およびその他の php 内部メソッドは引き続き出力を出力する必要があります。

通常、iconv() などを使用して utf8 に再エンコードできます。

于 2013-01-21T10:11:49.747 に答える