【问题标题】:(PHP) var_dumping an object in structured format.(PHP) var_dumping 结构化格式的对象。
【发布时间】:2019-02-28 07:52:31
【问题描述】:

我需要在我的代码中分析一个对象,但是当我执行 var_dump(或 print_r)时,它只会打印出没有结构的对象,例如:

[0]=> object(simple_html_dom_node)#2185 (9) { ["nodetype"]=> int(1) ["tag"]=> string(3) "div" ["attr"]=> array(1) { ["class"]=> string(36) "element element--collection internal" } ["children"]=> array(2) { [0]=> object(simple_html_dom_node)#2187 (

我需要以更结构化的格式查看它,这样我才能看到发生了什么,即:

object(simple_html_dom_node)#2185 (9) { 
    ["nodetype"]=> int(1) 
    ["tag"]=> string(3) "div" 
    ["attr"]=> array(1) 
    { 
        ["class"]=> string(36) "element element--collection internal" 
    } 
    ["children"]=> array(2) { 
        [0]=> object(simple_html_dom_node)#2187 (9) 

有人知道怎么做吗?

【问题讨论】:

  •  
    标签中的 var_dump 应该有帮助
  • echo "<pre>"; var_dump($object); echo "</pre>";

标签: php object var-dump


【解决方案1】:

您想要的格式实际上是var_dump() 打印对象的方式。问题是您在 HTML 文档中执行此操作,而浏览器会重新格式化它。

如果你把它放在<pre> 标记中,浏览器将不理会格式。所以:

echo "<pre>"; var_dump($object); echo "</pre>";

【讨论】:

    【解决方案2】:

    尝试使用var_export(),此功能将为您提供更易读的对象或数据结构。

    【讨论】:

    • 浏览器仍会重新格式化它,因此不容易阅读。不同之处在于var_export() 可以粘贴到代码中以重新创建数据。
    • @Barmar 使用var_export()&lt;pre&gt; 可以帮助他解决问题。
    • 确实如此。尽管var_export() 的输出实际上对调试没有那么有用。例如,它没有数组和字符串的长度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多