Xdebug and var_dump

PHP
3 min read

If you are using Xdebug with PHP and are using the var_dump function it is important to note that Xdebug will limit var_dump's depth when dumping information about a variable. By default this limit is 3 and can easily be identified by the ellipsis that are added to var_dump's output:

1object(Illuminate\Support\Collection)[135]
2  protected 'items' => 
3    array (size=2)
4      0 => 
5        object(Illuminate\Support\Collection)[133]
6          protected 'items' => 
7            array (size=3)
8              ...
9      1 => 
10        object(Illuminate\Support\Collection)[134]
11          protected 'items' => 
12            array (size=3)
13              ...
14

This Xdebug setting can be configured via the php.ini file (as explained in Xdebug's documentation section "xdebug.var_display_max_depth"). Luckily for us, this configuration value can be modified using PHP's init_set function, so it can be changed whenever we want during a script's execution:

1<?php
2
3// Change var_dump's depth when using Xdebug:
4ini_set('xdebug.var_display_max_depth', '10'); 
5
6

Now var_dump will output all the information we were originally looking for:

1object(Illuminate\Support\Collection)[135]
2  protected 'items' => 
3    array (size=2)
4      0 => 
5        object(Illuminate\Support\Collection)[133]
6          protected 'items' => 
7            array (size=3)
8              0 => string '1' (length=1)
9              1 => string '2' (length=1)
10              2 => string '3' (length=1)
11      1 => 
12        object(Illuminate\Support\Collection)[134]
13          protected 'items' => 
14            array (size=3)
15              0 => string '4' (length=1)
16              1 => string '5' (length=1)
17              2 => string '6' (length=1)
18

Conclusion

If you are having difficulties displaying all the information you need when using the var_dump function and you have Xdebug installed and enabled, it is more than likely a configuration value you missed. Modify the xdebug.var_display_max_depth configuration value as needed to display all the information needed.

Found this useful? Leave a comment below and share it with your friends and colleagues!

Comments

There are no comments. Be the first to comment!

Up next