WAMP で xdebug (php_xdebug-2.1.2-5.3-vc9.dll)を使用しています。ラージオブジェクトまたは変数に対してvar_dump
を使用すると、完全な変数が表示されません。
array
'node' =>
array
'my_form' =>
array
'form' =>
array
...
Xdebugがなければ、予想通りに表示されます。私はドキュメンテーションを見ましたが、解決策を見ませんでした。 xdebug var_dump
がfullオブジェクトを表示するように修正する方法を誰かが知っていますか?
これらはphp.iniで設定可能な変数です。
; with sane limits
xdebug.var_display_max_depth = 10
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024
; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
もちろん、これらは実行時にini_set()
経由で設定することもできます。php.iniを変更してWebサーバを再起動したくないが、何かをもっと深く調べる必要がある場合に便利です。
ini_set('xdebug.var_display_max_depth', '10');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');
私はこれが超古い投稿であることを知っています、しかし私はこれがまだ役に立つかもしれないと考えました。
Jsonフォーマットを読むのに慣れていれば、var_dumpを次のように置き換えることができます。
return json_encode($myvar);
私はこれまでに構築してきたサービスのトラブルシューティングに役立てています。これにより、何も切り捨てたりphp.iniファイルを変更したりすることなく、配列のすべてのレベルが返されます。
また、json_encodedデータは文字列なので、エラーログに簡単に書き込むことができます。
error_log(json_encode($myvar));
それはおそらくすべての状況にとって最良の選択ではありませんが、それは選択です!
あるいは別の方法を使うこともできます。
https://github.com/kint-php/kint
とにかくゼロ設定で動作し、Xdebugのvar_dumpよりもはるかに多くの機能を持っています。 Kintを使ってネストした制限を回避するには、単に次のようにします。
+d( $variable ); // append `+` to the dump call
私は今これが遅れていますが、それはいくらか役に立つかもしれません:
echo "<pre>";
print_r($array);
echo "</pre>";
チェックアウト Xdebbugのvar_dump設定 、特にこれらの設定の値:
xdebug.var_display_max_children
xdebug.var_display_max_data
xdebug.var_display_max_depth
var_export($array)
をお勧めします - 型は表示されませんが、コードで使用できる構文が生成されます。