Xdebug and var_dump

PHP

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!

Start the Discussion

Leave a comment

Subscribe to our newsletter