LoginSignup
0
0

More than 3 years have passed since last update.

phpのvar_dumpとvar_exportの違いをよく聞かれるので説明してみる

Last updated at Posted at 2019-10-01

<?php
$hoge = [
  'aaa' => 'hoge',
  'bbb' => 'foo',
  'ccc' => 'bar',
];

var_dump($hoge);
var_export($hoge);


/////var_dump/////
array(3) {
  ["aaa"]=>
  string(4) "hoge"
  ["bbb"]=>
  string(3) "foo"
  ["ccc"]=>
  string(3) "bar"
}

/////var_export/////
array (
  'aaa' => 'hoge',
  'bbb' => 'foo',
  'ccc' => 'bar',
)

基本的には標準出力する分には同じです。
出力される構造としては上記のような違いになります。

var_export関数は var_dump() に似ていますが、 返される表現が有効な PHP コードであるところが異なります。

公式の言い方をするとvar_exportは、このような「有効なPHPコード」という形式になります。

ちなみに有効なPHPコードとは?という疑問もあると思います。
var_exportの第二引数にtrueを指定すると変数を出力せずに変数の値を返します。

なので、使用用途としてはログ出力時などに変数情報を文字列として出力するには
var_export()が適しています。

ex)

\Log::debug(var_export($hoge, true));

var_dumpは配列の要素数や型も表示されるので用途別で使い分けましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0