How to get xdebug var_dump to show full object/array

前端 未结 6 1530
花落未央
花落未央 2020-11-27 08:57

I am using xdebug (php_xdebug-2.1.2-5.3-vc9.dll) on WAMP. When I use var_dump on a large object or variable it does not show the full variable.

         


        
相关标签:
6条回答
  • 2020-11-27 09:21

    Checkout Xdebbug's var_dump settings, particularly the values of these settings:

    xdebug.var_display_max_children
    xdebug.var_display_max_data
    xdebug.var_display_max_depth
    
    0 讨论(0)
  • 2020-11-27 09:27

    I know this is a super old post, but I figured this may still be helpful.

    If you're comfortable with reading json format you could replace your var_dump with:

    return json_encode($myvar);
    

    I've been using this to help troubleshoot a service I've been building that has some deeply nested arrays. This will return every level of your array without truncating anything or requiring you to change your php.ini file.

    Also, because the json_encoded data is a string it means you can write it to the error log easily

    error_log(json_encode($myvar));
    

    It probably isn't the best choice for every situation, but it's a choice!

    0 讨论(0)
  • 2020-11-27 09:28

    Or you can use an alternative:

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

    It works with zero set up and has much more features than Xdebug's var_dump anyway. To bypass the nested limit on the fly with Kint, just use

     +d( $variable ); // append `+` to the dump call
    
    0 讨论(0)
  • I know this is late but it might be of some use:

    echo "<pre>";
    print_r($array);
    echo "</pre>";
    
    0 讨论(0)
  • 2020-11-27 09:39

    These are configurable variables in 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 
    

    Of course, these may also be set at runtime via ini_set(), useful if you don't want to modify php.ini and restart your web server but need to quickly inspect something more deeply.

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

    Xdebug settings are explained in the official documentation.

    0 讨论(0)
  • 2020-11-27 09:47

    I'd like to recommend var_export($array) - it doesn't show types, but it generates syntax you can use in your code :)

    0 讨论(0)
提交回复
热议问题