77

var_dump($_variable) を echo すると、次のようなすべての変数と値を含む 1 つの長い折り返し行が表示されます

["kt_login_user"]=>  string(8) "teacher1" ["kt_login_id"]=>  string(3) "973" ["kt_campusID"]=>  string(4) "9088" ["kt_positionID"]=>  string(1) "5" 

読みやすくするために、各値をそれぞれの行に表示する方法はありますか? このようなもの:

["kt_login_user"]=>  string(8) "teacher1" 
["kt_login_id"]=>  string(3) "973" 
["kt_campusID"]=>  string(4) "9088" 
["kt_positionID"]=>  string(1) "5"
4

14 に答える 14

122

はい、次のようにラップしてみてください<pre>

echo '<pre>' , var_dump($variable) , '</pre>';
于 2012-04-12T01:01:15.173 に答える
40

私は通常、配列の出力を処理するための便利な関数を持っていますが、デバッグ時に少しきれいにするだけです。

function pr($data)
{
    echo "<pre>";
    print_r($data); // or var_dump($data);
    echo "</pre>";
}

それからそれを呼び出すだけです

pr($array);

または、スニペットを保存するようなエディターを使用している場合は、ビルドするプロジェクトごとに関数を作成したり、簡単なテストが必要なページごとに関数を作成したりする代わりに、スニペットにすばやくアクセスできます。

の場合print_r:

echo "<pre>", print_r($data, 1), "</pre>";

の場合var_dump():

echo "<pre>", var_dump($data), "</pre>";

上記をPHP Stormで使用しています。prタブコマンドとして設定しました。

于 2012-04-12T01:11:05.893 に答える
16

この問題についても調査しましたが、正しい答えが見つかりませんでした。これは私にはうまくいきません:

echo '<pre>' . var_dump($variable) . '</pre>';

これは、改行を含む配列の適切な表示を提供しません (私は Firefox 31.3.0 を使用しています)。

ただし、いくつかの実験の後、これで問題は解決しました (最初は php が閉じられていることに注意してください)。

... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...

これで問題が解決し、読みやすい配列がブラウザに表示されます。タグが PHP でラップされていないことがわかります。echo var_dump 部分のみです。

于 2014-12-04T22:09:06.840 に答える
13

XDebugがインストールされている場合は、そのvar_dump代替品を使用できます。引用:

Xdebug は、変数を表示するための PHP の var_dump() 関数を置き換えます。Xdebug のバージョンには、さまざまな型のさまざまな色が含まれており、配列要素/オブジェクト プロパティの量、最大深度、および文字列の長さに制限を設けています。可変表示を扱う関数は他にもいくつかあります。

次の設定のいくつかを微調整する必要があります。

Xdebug の変更された var_dump() 関数の出力を制御する設定がいくつかあります: xdebug.var_display_max_children、xdebug.var_display_max_data、および xdebug.var_display_max_depth。これら 3 つの設定の効果は、例で最もよく示されます。以下のスクリプトは、毎回異なる設定で 4 回実行されます。タブを使用して違いを確認できます。

ただし、XDebug を使用すると、コードがロードされたばかりの場合でも、コードが大幅に遅くなることに注意してください。運用サーバーで実行することはお勧めできません。とにかく、本番サーバーで var_dumping を行っているわけではありませんね。

于 2012-07-09T12:41:49.790 に答える
11

var_exportは素晴らしい出力を提供します。ドキュメントの例:

$a = array (1, 2, array ("a", "b", "c"));
echo '<pre>' . var_export($a, true) . '</pre>';

出力します:

array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
于 2016-02-04T10:00:07.400 に答える
10

私にとって正しい答えは

echo '<pre>' . var_export($var, true) . '</pre>';

var_dump($var)var_export($var)は文字列を返さないため、強制的に結果を値として返さなければなりvar_export($var, true)ませvar_exportん。

于 2016-06-10T13:41:05.600 に答える
7

出力バッファを使用: http://php.net/manual/de/function.ob-start.php

<?php
    ob_start();
    var_dump($_SERVER) ;
    $dump = ob_get_contents();
    ob_end_clean();

    echo "<pre> $dump </pre>";
?>

さらに別のオプションは、出力バッファリングを使用して、ダンプ内のすべての改行<br>要素に変換することです。

ob_start();
var_dump($_SERVER) ;
echo nl2br(ob_get_clean());
于 2015-08-05T08:48:39.070 に答える
7

Ctrl+を押すUと、ソース コードを表示できます。ほとんどのブラウザは、そこで出力をきれいにします。

var_dumpデバッグする最も醜い方法です。

于 2016-02-15T14:44:47.577 に答える
2

個人的にはSymfony の var dumper コンポーネントが提供する置換機能が好きです

でインストールしcomposer require symfony/var-dumperて使用するだけdump($var)

それは残りの世話をします。出力を少し操作できるようにするために、そこに注入されたJSも少しあると思います。

于 2018-04-05T21:03:17.500 に答える
0

フォーマットを保持するために<pre>タグで囲みます。

于 2012-04-12T01:01:27.543 に答える
0

var_dump($variable);die();タグやループの使用をやめたくありませんでしpreた。そのため、ブラウザーでダンプを見ているので、ページを右クリックして [検査] を選択します (私は Chrome を使用しています)。開発者ツールの要素セクションには、非常に読みやすい形式で変数が表示されます。

于 2017-11-29T21:38:37.643 に答える