0
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 5 years have passed since last update.

【PHP】print_r(false)をvar_dumpしたらtrueになった

Posted at

タイトルの通りです。

var_dump(print_r(false));の結果は、bool(true)になります。

<?php
print_r(true);                  // 出力結果:1
var_dump(print_r(true));        // 出力結果:1bool(true) print_rの出力(1)とvar_dumpの出力(bool(true))が同時に行われる

print_r(false);                 // 出力結果:なし
var_dump(print_r(false));       // 出力結果:bool(true)

公式サイトに答えがありました。

php.net〜print_r

return パラメータがTRUEの場合は、この関数はstringを返します。それ以外の場合の返り値はTRUEです。

例えばprint_r($test, TRUE)のように記述すると、その場で出力せずにprint_rの結果を返り値として渡します。

それをしない場合は、全て返り値はTRUEになるとのことでした。

<?php
$test_true = print_r(true);         // 出力結果:1
echo $test_true;                    // 出力結果:1         
var_dump($test_true);               // 出力結果:bool(true)
echo gettype($test_true);           // 出力結果:boolean

$test_false = print_r(false);       // 出力結果:なし
echo $test_false;                   // 出力結果:1
var_dump($test_false);              // 出力結果:bool(true)
echo gettype($test_false);          // 出力結果:boolean

// 第二引数にTRUEを指定し、print_rの結果を返り値として受け取る
$test01 = 'test01';
$test02 = print_r($test01, TRUE);   // 出力結果:なし
echo $test02;                       // 出力結果:test01

出力値と返り値を混ぜていただけでした・・・

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?