最近気づいた事
- 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
