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:
object(Illuminate\Support\Collection)[135]
protected 'items' =>
array (size=2)
0 =>
object(Illuminate\Support\Collection)[133]
protected 'items' =>
array (size=3)
...
1 =>
object(Illuminate\Support\Collection)[134]
protected 'items' =>
array (size=3)
...
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:
<?php
// Change var_dump's depth when using Xdebug:
ini_set('xdebug.var_display_max_depth', '10');
Now var_dump
will output all the information we were originally looking for:
object(Illuminate\Support\Collection)[135]
protected 'items' =>
array (size=2)
0 =>
object(Illuminate\Support\Collection)[133]
protected 'items' =>
array (size=3)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)
1 =>
object(Illuminate\Support\Collection)[134]
protected 'items' =>
array (size=3)
0 => string '4' (length=1)
1 => string '5' (length=1)
2 => string '6' (length=1)
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!
∎