作成日:2006/05/10
1E.7 変数の状態判定(NULLとempty)
NULL
PHPは変数宣言のない(サポートしていない)言語です。未代入の変数の値はNULL値です。 一旦、値が代入された変数でも、NULL値を代入したり、削除(unset)されたりすると再びNULL値になります。
empty
値が代入されてる変数でも論理型にキャストするとFALSEになる変数があります。 このような変数の状態を空(empty)と呼び、その値を空値と呼びます。 NULL値も含めて考えるとNULL値も空値です。
まとめ
NULLとemptyについてまとめると、次のようになります。
- 値のセットされていない(unset)変数は、NULL値を持つ
- 値のセットされいる変数でも、論理型にキャストするとFALSEになる変数は空値を持つ
- NULL値も空値である
※ NULL値は空値ですが、空値はNULL値ではありません。
PHPでは、NULL値と空値を判定するいくつかの方法がありますが、 正論理/負論理の違いを考えると集約できます。
| 変数の状態 | 正論理での 判定方法 |
負論理での 判定方法 |
説明 |
|---|---|---|---|
| NULL値 | is_null($var) |
isset($var) |
以下の変数はNULL値を持ちます
|
| 空(empty)値 | empty($var) |
(bool)$var |
以下の変数は空値を持ちます
|
※unset()で変数がNULL値になるのは変数の全てのリファレンスがunset()された場合です。
