[PHP] 0と””(空文字)を区別、判定する方法



先日、0と””(空文字)の判定でつまづきました。

$test[0] = "";
$test[1] = 0;

for($i=0;$i<2;$i++){
    if($test[$i] == ""){
    $test[$i] = "abc";
}
echo $test[0].'<br>';
echo $test[1];

//実行結果
abc
abc

==(緩やかな比較)では、0も””(空文字)も同じものとして扱われます。0と””を区別するには ===(厳密な比較) を使います。

$test[0] = "";
$test[1] = 0;

for($i=0;$i<2;$i++){
    if($test[$i] === ""){
    $test[$i] = "abc";
}
echo $test[0].'<br>';
echo $test[1];

//実行結果
abc
0

以下のマニュアルに詳しく記載されています。

PHP: PHP 型の比較表 – Manual

スポンサードリンク