Как получить xdebug var_dump, чтобы показать полный объект / массив

Я использую xdebug (php_xdebug-2.1.2-5.3-vc9.dll) в WAMP . Когда я использую var_dump для большого объекта или переменной, он не отображает полную переменную.

 array 'node' => array 'my_form' => array 'form' => array ... 

Без xdebug это показывает, как и следовало ожидать. Я посмотрел документацию, но не видел решения. Кто-нибудь знает, как я могу это исправить, так что var_dump показывает полный объект?

Это настраиваемые переменные в php.ini:

 ; with sane limits xdebug.var_display_max_depth = 5 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 и перезапускать свой веб-сервер, но вам нужно быстро проверить что-то более глубоко.

 ini_set('xdebug.var_display_max_depth', 5); ini_set('xdebug.var_display_max_children', 256); ini_set('xdebug.var_display_max_data', 1024); 

Настройки Xdebug описаны в официальной документации .

Я знаю, что это супер старый пост, но я решил, что это может быть полезно.

Если вам удобно читать json-формат, вы можете заменить var_dump следующим:

 return json_encode($myvar); 

Я использовал это, чтобы помочь устранить неисправность службы, которую я создавал, которая имеет некоторые глубоко вложенные массивы. Это вернет каждый уровень вашего массива без усечения чего-либо или потребует изменения вашего файла php.ini.

Кроме того, поскольку данные json_encoded являются строкой, это означает, что вы можете легко записать ее в журнал ошибок

 error_log(json_encode($myvar)); 

Вероятно, это не лучший выбор для любой ситуации, но это выбор!

Или вы можете использовать альтернативу:

https://github.com/kint-php/kint

Он работает с нулевой настройкой и имеет гораздо больше возможностей, чем var_dump от Xdebug. Чтобы обойти вложенный лимит «на лету» с Кинтом, просто используйте

  +d( $variable ); // append `+` to the dump call 

Проверьте параметры var_dump Xdebbug , в частности значения этих параметров:

 xdebug.var_display_max_children xdebug.var_display_max_data xdebug.var_display_max_depth 

Я сейчас опаздываю, но это может быть полезно:

 echo "<pre>"; print_r($array); echo "</pre>";