前書き
PHPプログラミングにおいて、isset()関数とempty()関数は、変数を扱う際に非常に重要です。
これらの関数は似ているように見えますが、異なる目的で使用されます。
この記事では、それぞれの関数の基本的な違いと、どのような場合に使い分けるべきかを紹介します。
サンプルコードはPHP Playground で実行できます。
isset()の基本
isset()は、変数がセットされていて、かつnullでないことを確認する関数です。
主に変数が存在しているかどうかをチェックする際に使用します。
例:isset()の使用
PHP
|
|
実行結果
|
|
empty()の基本
empty()は、変数が「空」かどうかをチェックする関数です。
変数が存在しない、またはその値がnull、0、空の文字列、空の配列などの場合、empty()はtrueを返します。
以下は、各コードサンプルの下にそれぞれの実行結果を示した例です。
例 1: 変数が未定義の場合
php
|
|
実行結果
|
|
例 2: 変数が null の場合
php
|
|
実行結果
|
|
例 3: 変数が 0 の場合
php
|
|
実行結果
|
|
例 4: 変数が “0”(文字列のゼロ)の場合
php
|
|
実行結果
|
|
例 5: 変数が空文字列 ("") の場合
php
|
|
実行結果
|
|
例 6: 変数が空の配列の場合
php
|
|
実行結果
|
|
例 7: 変数が false の場合
php
|
|
実行結果
|
|
例 8: 変数に値が設定されている場合(非空)
php
|
|
実行結果
|
|
例 9: 数値が 1 の場合(非空)
php
|
|
実行結果
|
|
例 10: 配列に要素がある場合(非空)
php
|
|
実行結果
|
|
各例では、empty()
の挙動に合わせたメッセージを表示しています。
このように、empty()
は「存在しない変数」や「値が false と評価されるもの(null, 0, “0”, 空文字列, 空配列, false)」に対して true を返します。
issetとemptyの比較結果
以下は、各ケースにおける isset($var)
と empty($var)
の結果をまとめた表です。
ケース | 値 | isset($var) の結果 |
empty($var) の結果 |
---|---|---|---|
例1: 未定義の場合 | 変数が未定義 | false | true |
例2: null の場合 | null |
false | true |
例3: 0 の場合 | 0 |
true | true |
例4: “0” の場合 | "0" |
true | true |
例5: 空文字列の場合 | "" |
true | true |
例6: 空の配列の場合 | array() |
true | true |
例7: false の場合 | false |
true | true |
例8: 非空文字列の場合 | "Hello, world!" |
true | false |
例9: 非ゼロ数値の場合 | 1 |
true | false |
例10: 要素あり配列の場合 | array(1, 2, 3) |
true | false |
この表から分かるように、
isset()
は変数が定義されていて、かつ null 以外 の値がセットされている場合に true を返します。empty()
は「値が偽と評価される」場合(未定義、null、0、“0”、空文字列、空配列、false)に true を返します。
まとめ
isset()とempty()は、PHPで変数を扱う際に非常に役立つ関数です。
適切なシチュエーションで適切な関数を使い分けることで、より効率的かつ正確なプログラミングが可能になります。
スポンサーリンク