1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【PHP】コンソールで変数の中身を確認する方法。var_dump, var_export, print_rの違い

Posted at

コンソールで変数の中身を確認する関数はいくつか存在する。
結論からいうとvar_exportが一番使い勝手がいい。

##目次

  1. まとめ (var_dump, var_export, print_rの違い)
  2. php対話モードの使い方
  3. print_r
  4. var_export
  5. var_dump

##まとめ (var_dump, var_export, print_rの違い)

変数の中身を確認サクッと確認したいなら、var_exportが便利。出力をそのままPHPコードとして使い回すことができる。

値の型も確認したい場合はvar_dumpを使う。引数に変数を2つ同時に指定することも可能。

項目 var_export var_dump print_r
値の型表示 無し 有り 無し
$str = "AAA"; AAA string(3) "AAA" AAA
PHPコードとして利用 不可 不可
$x = array('x' => 1); array ('x' => 1) array(1) {["x"] => int(1)} Array([x] => 1)
戻り値を返す  有り 無し 有り

3行目と5行目は左カラムの変数を引数として渡した場合の出力結果を表示。

一番役に立たたなそうなのがprint_r


##php対話モードの使い方 コード実行のためここでは対話モードを使う。

php -a

$ php -a
Interactive shell

php >

##print_r 変数の値を表示する。

print_r ( $expression [, bool $return = false ] )

  • $expressionには変数が入る。
  • 第2引数は出力を戻り値とするか(任意)
    • デフォルトはfalse。戻り値なし。
    • 戻り値として出力する場合はtrueにする。

▼実際の使い方
print_r( 変数 ) :変数の中身を確認したい
print_r( 変数, ture) :変数を代入する場合など

引き数1つの場合
php > $obj = array("a" => 1, "b" => 2, "c" => 3);
php > print_r($obj);
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

###引数2つ($return = true)
引数ありの場合は、戻り値が返るため変数に代入することができる。

第2引数にtureを指定した場合
php > $obj2 = print_r($obj, true);
php > print_r($obj2);
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

上記処理の場合、いちいちprint_r(変数, true)としなくても直接代入できる。

print_rを使わない処理
php > $obj3 = $obj;
php > print_r($obj3)
php > ;
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

戻り値としない場合は代入できない
戻り値にしない場合
$obj2 = print_r($obj);
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)
php > print_r($obj2);
1

##var_export 変数のデータを構造化データとして返す。出力は有効なPHPコードになる。

var_export ( $expression [, bool $return = false ] )

php > $obj = array("a" => 1, "b" => 2, "c" => 3);
php > var_export($obj);
array (
  'a' => 1,
  'b' => 2,
  'c' => 3,
)

出力結果がarray('a' => 1, 'b' => 2, 'c' => 3)となっており、連想配列の定義そのものになっている。

###第2引数ありの場合

php > $obj = array("a" => 1, "b" => 2, "c" => 3);
php > $obj4 = var_export($obj, true);
php > echo $obj4
php > ;
array (
  'a' => 1,
  'b' => 2,
  'c' => 3,
)

##var_dump `var_dump ( $expression , ...$expressions )` 型や値を構造化したデータを返す。 一度に2つの式(変数)を指定することができる。
php > $obj = array("a" => 1, "b" => 2, "c" => 3);
php > var_dump($obj);
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}

var_exportとの大きな違いは2点

  1. 値の型を表示
  2. 式(変数)を2つ指定できる

###引数で変数を2つ指定した場合

php > $obj = array("a" => 1, "b" => 2, "c" => 3);
php > $x = array('x' => 1);
php > var_dump($obj, $x);
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
array(1) {
  ["x"]=>
  int(1)
}
1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?