【PHP】isset()で変数が空かどうか調べる!

(*このページは2021年6月10日に更新されました。)

PHPのisset()を使用することで変数が空かどうか調べることができます。

isset()は変数に値がセットされていること、かつNULLでないことを調べる関数であり、セットされていればtrueを、そうでない場合はfalseを返します。

isset()は変数をパラメータとして真偽値を返しますが、複数の数値を配列形式で指定することもでき、全ての変数がセットされている場合にだけ true を返し、それ以外は false を返します。

また、PHPではisset()とよく似ているempty()という関数が存在し、値によって返す真偽値が異なりますので注意してください。

今回はPHPのisset()で変数が空かどうか調べる方法について以下の内容を解説していきます。

⚫︎ 変数に値が入っている場合
⚫︎ 変数に値が入っていない場合
⚫︎ 変数に値にNULLが入っている場合
⚫︎ 変数がunset()されている場合
⚫︎ 複数の変数が空であるかどうかを調べる場合

⚫︎ isset()とempty()の違い

isset()関数とは

isset()関数とは変数に値がセットされていること、かつNULLでないことを調べる関数となります。

isset()の書き方

isset()の書き方は下記となります。

isset()のパラメータ

⚫︎ 調べたい変数:
空かどうか調べたい変数を指定する

isset()に調べたい変数を指定することで、変数の値がセットされているかどうか調べることができ、値がセットされていること、かつNULLでなければtrueを返し、そうでなければfalseを返します。

また、複数の調べたい変数を設定する場合、全ての変数がセットされている場合にだけtrueを返し、そうでなければfalseを返します。

isset()で変数が空かどうか調べるサンプルコード

isset()を使って変数が空かどうか調べるサンプルコードをご紹介します。

変数に値が入っている場合

変数に値が入っている場合、isset()はtrueを返します。

出力結果

・変数に値が入っている場合
変数の値: 123456789
isset()使用結果はTrueです。

変数の値: あいうえおかきくけこ
isset()使用結果はTrueです。

変数の値:
isset()使用結果はTrueです。

変数に値が入っている為、isset()はtrueを返しています

変数に値が入っていない場合

変数に値が入っていない場合、isset()はfalseが返されます。

出力結果

・変数に値が入っていない場合
変数の値:
isset()使用結果はFalseです。

変数の値:
isset()使用結果はFalseです。

変数に値が入っていない為、isset()は>falseを返しています

変数に値にNULLが入っている場合

変数に値にNULLが入っている場合、isset()はfalseが返されます。

出力結果

・変数に値にNULLが入っている場合
変数の値:
isset()使用結果はFalseです。

変数に値にNULLが入っている為、isset()はfalseを返しています。

変数がunset()されている場合

変数がunset()されている場合、isset()はfalseが返されます。

unset()は、変数の割り当てを解除する関数となります。

出力結果

・変数がunset()されている場合
変数の値: 1234567
isset()使用結果はFalseです。

変数の値: あいうえお
isset()使用結果はFalseです。

変数に値が格納されていますが、unsetで格納した値が解除されています。

つまり、空と認識されることからisset()はfalseを返しています。

複数の変数が空であるかどうかを調べる場合

複数の変数が空であるかどうかを調べる場合、isset()は全ての変数がセットされている場合にだけtrueを返します。

また、判断は左から右へと行われ、セットされていない値であると判断されるとfalseを返します。

出力結果

・複数の変数の値が空かどうか調べる場合
変数の値: 123456789
変数の値: あいうえおかきくけこ
isset()使用結果はTrueです。

変数の値: 123456789
変数の値:
isset()使用結果はFalseです。

val1とval2の組み合わせはどちらとも値が入っている為、isset()はtrueが返していますがval3は値が入っていない為、val1とval3の組み合わせはfalseを返しています。

isset()とempty()の違い

PHPにはisset()とよく似た関数でempty()という関数があります。

empty()とは変数が空であるかどうかを調べる関数となります。

isset()と変わらないのでは?」、「どっちを使ってもよくないか?

と思うかもしれませんが、値によって返す真偽値が異なりますので下記のサンプルコードでisset()とempty()の違いの代表例を紹介します。

出力結果

・isset()とempty()との違い
変数の値:
isset()使用結果はFalseです。
empty()使用結果はTrueです。

変数の値:
isset()使用結果はFalseです。
empty()使用結果はTrueです。

値がセットされてない変数をisset()とempty()でそれぞれ判定すると、isset()ではfalse、empty()ではtrueが返されています、

また、値にNULLがセットされている変数をisset()とempty()でそれぞれ判定すると、こちらもisset()ではfalse、empty()ではtrueが返されています、

つまり、isset()とempty()で異なる真偽値を返す値が存在するということです。

PHPのempty()について詳しく知りたい場合はこちらをご参考ください。

今回のポイント

isset()で変数が空であるどうかを調べる

PHPで変数が空であるどうかを調べるにはisset()を使用する。

⚫︎ isset()のパラメータには調べたい変数を指定する
(調べたい変数を複数指定することも可能)

⚫︎ 変数に値が入っている場合、isset()はtrueを返す

⚫︎ 変数に値が入っていない場合。isset()はfalseを返す

変数に値にNULLが入っている場合、isset()はfalseを返す

⚫︎ 変数がunset()されている場合、isset()はfalseを返す

⚫︎ 複数の変数が空であるかどうかを調べる場合、isset()は全ての変数がセットされている場合にだけtrueを返し、それ以外はfalseを返す

⚫︎ isset()とempty()の違いは真偽値が異なるということである

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報