What would cause a print_r and/or a var_dump to fail debugging a variable?

前端 未结 2 615
日久生厌
日久生厌 2020-12-17 03:13

I\'m attempting to debug the PayPal review process in Magento. Every time I try to dump the following variable I get a white page:

//the variable declaration         


        
相关标签:
2条回答
  • 2020-12-17 03:36

    A PHP parse and fatal error would produce this. You may want to have a look at your error log.

    You could try adding the following lines to the beginning of your php files (just after the opening PHP tag "

    ini_set('display_errors',1);
    error_reporting(E_ALL);
    
    0 讨论(0)
  • 2020-12-17 03:49

    First, PHP never "just white pages". When you get a blank screen, that means PHP's execution has halted fro some reason. However, unless your server has been configured to not log errors, the PHP error log or the Magento exception log should have an error for you.

    As far as your specific problem goes, many of Magento's objects contain reference to a large amount of information — and sometimes the references are circular. PHP's var_dump and print_r functions will blindly follow these circular references and attempt to print everything out. This eventually leads to PHP using more memory than is allowed by the memory_limit ini setting, and execution halts.

    Most PHP professionals use the xDebug extension to work around this. The xDebug extension has a modified var_dump that will limit the amount of information dumped, which prevents the above memory limit problems. The xdebug.var_display_max_children, xdebug.var_display_max_data, and xdebug.var_display_max_depth ini settings are the ones you'll want to tweak if xDebug's still not helping with the memory limit problem. (some PHP distributions have these set too high initially)

    If that's not a possibility, a little caution with your var_dump's can still help.

    Use this to figure out the variable type

    var_dump(get_class($thing));
    

    If it's a Magento object, use this to see its data keys

    var_dump(array_keys($thing->getData()));
    

    And then output individual data members with

    var_dump($thing->getData('key_name'));
    var_dump($thing->getKeyName()));
    
    0 讨论(0)
提交回复
热议问题