言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

PHP辞典

  1. トップページ
  2. PHP辞典
  3. var_dump() / print_r() / var_export()

var_dump() / print_r() / var_export() 対応: PHP 4(2000)

変数の型と値を出力するデバッグ用の関数です。開発時の動作確認に欠かせないツールです。

構文

// 変数の型と値を詳細に出力します。
var_dump($value1, $value2, ...);

// 配列やオブジェクトを読みやすい形式で出力します。
print_r($value, $return);

// PHPコードとして有効な形式で出力します。
var_export($value, $return);

関数一覧

関数概要
var_dump($value, ...)変数の型・値・要素数を詳細に出力します。複数の変数をまとめて渡せます。戻り値はありません。
print_r($value, $return)配列やオブジェクトを人間が読みやすい形式で出力します。第2引数に『true』を渡すと、出力せずに文字列として返します。
var_export($value, $return)変数をPHPコードとして有効な文字列で出力します。第2引数に『true』を渡すと、出力せずに文字列として返します。

サンプルコード

<?php
// var_dump() は型と値を詳細に表示します。
var_dump(42);          // 『int(42)』と出力されます。
var_dump(3.14);        // 『float(3.14)』と出力されます。
var_dump("PHP");       // 『string(3) "PHP"』と出力されます。
var_dump(true);        // 『bool(true)』と出力されます。
var_dump(null);        // 『NULL』と出力されます。

// 配列の構造を確認します。
$user = ['name' => '太郎', 'age' => 25, 'active' => true];
var_dump($user);

// print_r() は読みやすい形式で出力します。
$colors = ['赤', '青', '緑'];
print_r($colors);

// 第2引数に true を渡すと文字列として返します。
$output = print_r($colors, true);
echo "配列の内容: " . $output;

// var_export() はPHPコードとして有効な形式で出力します。
$config = ['debug' => true, 'version' => '2.0'];
var_export($config);

// var_export() の戻り値を変数に格納する例です。
$code = var_export($config, true);
file_put_contents('config_cache.php', '<?php return ' . $code . ';');

// 複数の変数をまとめてvar_dump() で確認します。
$name = "花子";
$score = 95;
$passed = true;
var_dump($name, $score, $passed);

概要

『var_dump()』はデバッグにおいて最も信頼できる出力関数です。『echo』や『print_r()』では『false』『null』『空文字列』が空欄として表示されてしまいますが、『var_dump()』ならこれらの値も型とともに正確に表示されます。型の判定が重要なデバッグでは必ず『var_dump()』を使用してください。

『print_r()』は配列やオブジェクトの構造を読みやすく表示するため、データの中身をざっくり確認したい場合に便利です。第2引数に『true』を渡すと出力をキャプチャして文字列として返すため、ログへの記録にも活用できます。

『var_export()』はPHPコードとして有効な文字列を出力するため、設定ファイルのキャッシュ生成などに使えます。ただし、リソース型やクロージャには対応していないため注意が必要です。出力バッファリングで出力をキャプチャしたい場合は『ob_start()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。