最近気づいた事
- February 4th, 2011
PHPをさわるようになって気づいたんですが、条件分岐をする際に、値の「0」と「NULL」は同じ意味なんですね...。
<?php $arr = array( "zero1" => "0", "zero2" => 0, "null1" => "", "null2" => NULL, "null3" => "NULL", ); foreach ($arr as $key => $value) { if (!$value) { echo $key. " => null - ". $value. "<br>"; } else { echo $key. " => 入ってる - ". $value. "<br>"; } } /* 出力結果 zero1 => null - 0 zero2 => null - 0 null1 => null - null2 => null - null3 => 入ってる - NULL */ ?>
追記:isset()とis_null()を使った判定
上の配列で、isset()とis_null()を使って判定した場合の情報を追記(2013/07/27)しておきます。
<?php foreach ($arr as $key => $value) { echo 'isset('. $key. ') : '. (isset($value) ? 'true' : 'false'). '<br>'; echo 'is_null('. $key. ') : '. (is_null($value) ? 'true' : 'false'). '<br>'; echo '<br>'; } /* 出力結果 zero1 : isset : true zero1 : is_null : false zero2 : isset : true zero2 : is_null : false null1 : isset : true null1 : is_null : false null2 : isset : false null2 : is_null : true null3 : isset : true null3 : is_null : false */ ?>
- February 4th, 2011