Edited at

[PHP] print_r、var_dump、var_export のちがい

More than 1 year has passed since last update.


実行結果


実行ソース


PHP

<?php

$data = array(
"A" => "Apple",
"B" => "Banana",
"C" => "Cherry"
);

echo "---print_r---\n";
print_r($data);

echo "---var_dump---\n";
var_dump($data);

echo "---var_export---\n";
var_export($data);
?>



出力結果

---print_r---

Array
(
[A] => Apple
[B] => Banana
[C] => Cherry
)

---var_dump---
array(3) {
["A"]=>
string(5) "Apple"
["B"]=>
string(6) "Banana"
["C"]=>
string(6) "Cherry"
}

---var_export---
array (
'A' => 'Apple',
'B' => 'Banana',
'C' => 'Cherry',
)



解説

出力形式はそれぞれ微妙に異なります。

print_r、var_dump、var_export の各関数は、結果を画面に表示(標準出力)するので、頭に echo 等を付ける必要はありません。

デモソースはこちら


出力結果を変数へ格納する


変数への格納

print_r と var_export 関数は、第2引数を true にすると出力結果を return してくれるようになります。

$result = print_r($data, true);

$result = var_export($data, true);



ファイル出力

error_log 関数と併用することで、ログファイルに出力することもできます。


PHP

// 下記の「3」はファイル出力する指定

error_log(var_export($data, true), 3, "./log.txt");

※正常に log.txt が出力されない場合、たいていはパーミッションの不足が原因です(=書き込み権限が無い)

(・o・ゞ いじょー。