【问题标题】:var_dump on a json_decode variable PHPjson_decode 变量 PHP 上的 var_dump
【发布时间】:2014-02-19 18:21:25
【问题描述】:

快速提问,我在 php 中对 json_decode 变量执行 var_dump,如下所示:

var_dump(json_decode($some_Variable, true));

而且,由于 $some_Variable 是一个相当长的 json 字符串,它在我的浏览器中显示如下:

array (size=10)
      0 => 
        array (size=14)
          'gameId' => int 1290161341
          'invalid' => boolean false
          'gameMode' => string 'CLASSIC' (length=7)
          'gameType' => string 'MATCHED_GAME' (length=12)
          'subType' => string 'RANKED_SOLO_5x5' (length=15)
          'mapId' => int 1
          'teamId' => int 200
          'championId' => int 55
          'spell1' => int 4
          'spell2' => int 14
          'level' => int 30
          'createDate' => float 1390601626963
          'fellowPlayers' => 
            array (size=9)
              ...
          'statistics' => 
            array (size=44)
              ...
      1 => 
        array (size=14)
          'gameId' => int 1291665162
          'invalid' => boolean false
          'gameMode' => string 'CLASSIC' (length=7)
          'gameType' => string 'MATCHED_GAME' (length=12)
          'subType' => string 'RANKED_SOLO_5x5' (length=15)
          'mapId' => int 1
          'teamId' => int 200
          'championId' => int 236
          'spell1' => int 4
          'spell2' => int 21
          'level' => int 30
          'createDate' => float 1390674755052
          'fellowPlayers' => 
            array (size=9)
              ...
          'statistics' => 
            array (size=41)
              ...

(是的,它的英雄联盟,我正在使用 Riot API (http://developer.riotgames.com/) 编写一个小应用程序)。如您所见,例如索引“fellowPlayers”并没有显示其中的实际值,它只显示“...”并且统计信息相同,我该怎么做才能显示每个索引中的所有内容?

【问题讨论】:

标签: php json var-dump


【解决方案1】:

既然json_decode返回一个数组,试试

$arJson = json_decode( $strJson, true );
var_dump( $arJson[ 0 ] );

由于您正在打印每个元素,因此结果可能不会被混淆。

【讨论】:

  • 这行得通,因为它只是出于查看原因,我可以将变量转储到我想要的索引中,以便显示整个事情。谢谢
【解决方案2】:

您显然在使用Xdebug,这是一个 PHP 调试扩展,(以及其他功能)overloads the native var_dump() function 具有自己的精美版本。您可以调整其设置,或者通过将xdebug.overload_var_dump 指令设置为false 来禁用它。

php.ini:

xdebug.overload_var_dump=0

在常规 PHP 代码中:

<?php
ini_set('xdebug.overload_var_dump', 0);

【讨论】:

    【解决方案3】:

    为什么不直接转储 JSON? JSON 更具可读性,如果您 echo 它,它不会被切断。它不会被很好地格式化,但是您可以轻松地将其复制/粘贴到一个编辑器中,该编辑器可以很好地格式化它(许多 IDE 都可以做到这一点)。 Firefox 的 Scratchpad 开发工具也可以做到。

    【讨论】:

      【解决方案4】:

      如果你使用的是 xampp C:\xampp\php\php.ini

      ,请将此代码添加到 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 
      

      它 100% 适合我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-09
        • 2016-07-07
        • 2011-01-26
        • 2015-06-29
        • 2019-01-06
        相关资源
        最近更新 更多