.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 4
.
<< Prev
定義済み変数
« INDEX »
PHP 文法編
Next >>
変数のスコープ
作成日: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値を持ちます

  • 未代入の変数
  • NULL値を代入された変数
  • unset()された変数
空(empty)値
empty($var)
(bool)$var

以下の変数は空値を持ちます

  • NULL値(NULL値は空値です)
  • FALSE or 0 or "" or "0"
  • 空の配列(array())
  • プロパティのないオブジェクト(PHP5)

※unset()で変数がNULL値になるのは変数の全てのリファレンスがunset()された場合です。

<< Prev
定義済み変数
« INDEX »>
Page Top
Next >>
変数のスコープ

.