【PHP】 「var_dump()」の結果を自動で「整形」して表示する

この記事は約4分で読めます。
記事内に広告が含まれています

コーディングのイメージ

こんにちは、さち です。

先日、「PHP」のデバッグで var_dump() を使っていたんですが、結果表示が「改行」もないただ文字の羅列ですごく見にくいんです……。

というこで、今回は var_dump() を「整形」する方法について書いていきます。

スポンサーリンク

サンプルコード

PHP

$triangle = [
  'kozue'=> [
    'unit'=> 'スリーズブーケ',
    'birthday'=> '6/15'
  ],
  'tsuzuri'=> [
    'unit'=> 'DOLLCHESTRA',
    'birthday'=> '11/17'
  ],
  'megumi'=> [
    'unit'=> 'みらくらぱーく!',
    'birthday'=> '12/20'
  ]
];

// 連想配列の中身を確認する
echo '<div id="debug">';
var_dump($triangle);
echo '</div>;

CSS

#debug {
  color: white;
  background: darkblue;
}

実行結果

結果
array(3) { ["kozue"]=> array(2) { ["unit"]=> string(21) "スリーズブーケ" ["birthday"]=> string(4) "6/15" } ["tsuzuri"]=> array(2) { ["unit"]=> string(11) "DOLLCHESTRA" ["birthday"]=> string(5) "11/17" } ["megumi"]=> array(2) { ["unit"]=> string(24) "みらくらぱーく!" ["birthday"]=> string(5) "12/20" } }

連想配列の内容が出力されていますが、「改行」がないただの文字の羅列なので正直見にくいです。

解決方法

CSS

#debug {
  color: white;
  background: darkblue;
  white-space: pre;
}

white-space: pre; を追加することで、この要素内のテキストは「空白」や「改行」がそのまま表示されるようになります。

長い文字列を自動で折り返したい場合は、white-space: pre-wrap; にしましょう

実行結果

結果
array(3) {
  ["kozue"]=>
  array(2) {
    ["unit"]=>
    string(21) "スリーズブーケ"
    ["birthday"]=>
    string(4) "6/15"
  }
  ["tsuzuri"]=>
  array(2) {
    ["unit"]=>
    string(11) "DOLLCHESTRA"
    ["birthday"]=>
    string(5) "11/17"
  }
  ["megumi"]=>
  array(2) {
    ["unit"]=>
    string(24) "みらくらぱーく!"
    ["birthday"]=>
    string(5) "12/20"
  }
}

ちなみに、今回の方法以外にも、var_dump() を HTML の <pre> タグで囲んでも同じ効果があります。

コメント

タイトルとURLをコピーしました