第2章 PHPの基本 / 第4回 模擬試験
PHPの`null`型に関する次の記述のうち、正しいものはどれか。
変数に`null`を代入すると、その変数は「値を持たない」状態になる。
正解
`null`は数値の`0`と全く同じ値として扱われる(`null === 0`は`true`)。
PHPには`null`という値は存在しない。
`null`はブール値の`false`と厳密に等しい(`null === false`は`true`)。
解説
変数に`null`を代入すると、その変数は「値を持たない」ことを表す特別な状態になります。`null`はPHPにおける独立した型(`null`型)で、値としては`null`ただ1つだけが存在します。
他の選択肢が誤りである理由は次の通りです。
・`null`と数値の`0`は異なる型のため、厳密等価演算子`===`で比較すると`null === 0`は`false`になります(緩やかな比較`==`ではおおむね等しいとみなされますが、`===`では区別されます)。
・PHPには`null`という値・型が明確に存在します。未初期化の変数や、明示的に`null`を代入した変数の値として使われます。
・`null`と`false`も異なる型のため、`null === false`は`false`になります。
例:
```
var_dump(null === 0); // false
var_dump(null === false); // false
var_dump(null == false); // true(緩やかな比較では等しいとみなされる)
```
(参照: 独習PHP 第4版 第2章 PHPの基本 2.3.7節 ヌル(null) p.70)