Var_dump($ _ variable)をエコーすると、次のようなすべての変数と値で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"
はい、<pre>
でラップしてみてください。例:
echo '<pre>' , var_dump($variable) , '</pre>';
私は通常、配列の出力を処理するための素敵な関数を持っています。デバッグ時に少しきれいにするためです。
_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
タブコマンドとして設定しました。
私もこの問題を調査しましたが、正しい答えが見つかりませんでした。これは私にはうまくいきません:
echo '<pre>' . var_dump($variable) . '</pre>';
これは、改行を含む配列の素敵な表示を提供しません(Firefox 31.3.0を使用しています)
しかし、いくつかの実験の後、これは問題を解決しました(最初にphpが閉じられることに注意してください):
... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...
これで問題が解決し、読みやすい配列がブラウザに表示されます。タグがPHPでラップされていないことがわかります。 echo var_dump部分のみです。
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をしているわけではありませんか?
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',
),
)
私にとって正しい答えは
_echo '<pre>' . var_export($var, true) . '</pre>';
_
var_dump($var)
およびvar_export($var)
は文字列を返さないので、var_export($var, true)
を使用して_var_export
_が結果を値として返すようにする必要があります。
押すことができます Ctrl+U ソースコードを表示します。ほとんどのブラウザはそこで出力をきれいにします。
var_dump
は最もgliいデバッグ方法です。
出力バッファを使用します: 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>";
?>
さらに別のオプションは、出力バッファリングを使用し、dump内のすべての改行を<br>
要素に変換することです。
ob_start();
var_dump($_SERVER) ;
echo nl2br(ob_get_clean());
ソースの表示および[〜#〜] cli [〜#〜]で機能する何かを必要とする開発者にとって、特に単体テストのデバッグ時に役立ちます。
echo vd([['foo'=>1, 'bar'=>2]]);
function vd($in) {
ob_start();
var_dump($in);
return "\n" . preg_replace("/=>[\r\n\s]+/", "=> ", ob_get_clean());
}
利回り:
array(1) {
[0] => array(2) {
'foo' => int(1)
'bar' => int(2)
}
}
Var_export()が大好きです。コピー/貼り付け可能なコードが好きなら、試してください:
echo '<pre>' . var_export($data, true) . '</pre>';
または、色の構文の強調表示のための次のようなものです。
highlight_string("<?php\n\$data =\n" . var_export($data, true) . ";\n?>");
私はvar_dump($variable);die();
の使用を止めたくなかったし、pre
タグとループの使用はやりすぎだと思うので、ブラウザでダンプを見ているので、ページを右クリックして選択するだけです。検査します(Chromeを使用しています)。開発者ツールの要素セクションには、非常に読みやすい形式で変数が表示されます。
個人的には Symfonyのvar dumperコンポーネント によって提供される置換関数が好きです
_composer require symfony/var-dumper
_でインストールし、dump($var)
を使用します
残りは処理します。出力と少しやり取りできるようにするために、そこに注入されたJSも少しあると思います。
<pre>
タグでラップして、フォーマットを保持します。