15 July 2009

phpメモ: NULL型をintにキャストすると0になる。あと===演算子

phpのNULL型をintにキャストすると0になるようです。

$null = NULL;
if ((int)$null === 0) {    // 真
    ...
}

変数がNULLかどうかをチェックするには、is_null()関数を使います。

また、phpの条件式は、整数との比較の場合、文字列を暗黙に整数にキャストするようです。

$string = "1";
if ($string == 1) {    // 真
    ....
}

よって、===演算子を使うほうが好ましいです。===演算子は型の同一性までチェックしてくれます。

$string = "1";
if ($string === 1) {    // 偽
    ....
}

同様に、条件式の中では、NULL型も整数型へ変換されるようです。よって比較にはis_null()を使うほうが良いです。

$null = NULL;
if ((int)$null === 0) {    // 真
    ....
}

if (is_null($null)) {    // 真
    ....
}