【PHP入門】isset関数で変数がセットされているか確認する方法

プログラムでは変数が空やNULLの値を参照することにより例外エラーが発生することがよくあります。

PHPでは例外エラーを防ぐために、あらかじめ変数に値がセットされているか、確認するための関数が用意されています。

この記事ではisset関数の

・isset関数とは?
・isset関数の基本的な使い方

といった基本的な内容から、

・isset関数をif文で使用する方法
・iseet関数を三項演算子で使用する方法
・isset関数で配列の要素を調べる方法
・empty関数を使用する方法
・isset関数のパフォーマンス

などのisset関数の応用的な使い方に関しても解説していきます。

また、指定した名前の定数が存在するか確認するdefinedについても合わせて紹介します。

ここでは、そんなisset関数について詳しく解説いたします!

isset関数とは

変数がセットされているか、NULLではないかを確認するにはisset関数を使用します。

書き方:

引数:
引数には1つまたは複数の変数名を指定します。
変数名を指定することで、その変数がセットされているか、NULLではないかを調べます。

返り値:
値が設定されていたらTRUEを返し、設定されていなかったらFALSEを返します。

複数の変数を指定した場合は、全ての変数に値がセットされている場合のみTRUEを返します。

isset関数の基本的な使い方

ここでは、isset関数の基本的な使い方から、条件文や三項演算子で使用する方法などを解説していきます。

基本的な使い方

実際にisset関数を使用して変数の値がセットされているか、確認してみましょう。

以下にisset関数の基本的な使い方を記述します。

サンプルプログラム

実行結果:

サンプルでは変数にそれぞれ値をセットし、isset関数で値がセットされているか、確認しています。

値がセットされていればTRUEを返し、unset関数で値を削除後に再度isset関数で確認すると、FALSEを返していることがわかりますね!

isset関数で複数の変数をセットした場合、1つでも値がセットされていなければFALSEを返します。

if文で使用する

isset関数は返り値にbool(真偽値)を返すので、if文で使用することもできます。

以下にisset関数をif文で使用する方法を記述します。

サンプルプログラム

実行結果:

以下のようにPOSTメソッドやGETメソッドからの変数の存在を確認するときも、isset関数を使用すれば便利です。

iseet関数を使用した判定文や、変数がNULLか確認する方法については、以下の記事でも詳しく解説しています!

三項演算子で使用する

isset関数による判定は、三項演算子で記述することで、より簡潔に処理を記述することができます。

以下に三項演算子によるisset関数の判定文を記述します。

サンプルプログラム

実行結果:

三項演算子については、以下の記事で詳しく解説していますので、ざひ参考にしてくださいね!

配列の要素を調べる方法

isset関数を使用すれば、配列の要素が空か調べることもできますが、以下のように1つの要素にNULLを指定しても、isset関数はTRUEを返してしまいます。

サンプルプログラム1

実行結果:

そのため、isset関数を使用して配列の要素に値がセットされているか調べたい場合は、foreach文のループ処理で要素を1つずつ確認する方法が確実です。

サンプルプログラム2

実行結果:

また、以下のように連想配列に対しても値を調べることができます。

サンプルプログラム3

実行結果:

emptyで変数が空か確認する

isset関数とよく似た関数として、empty関数があります。

empty関数は、変数が空であるかどうか確認し、空や0の場合はTRUEを返します。

書き方:

以下のような場合は空とみなされます。
「"" (空文字列)」「0 (整数 の 0)」「0.0 (浮動小数点数の 0)」「"0" (文字列 の 0)」「NULL」「FALSE」「空の配列」「空の変数」

また、isset関数とは返り値が逆なので注意しましょう。

isset関数:空やNULLの場合はFALSE
empty関数:空やNULLの場合はTRUE

以下にempty関数を使用して、変数が空か調べる方法を記述します。

サンプルプログラム

実行結果:

empty関数を使用して変数が空か判定する方法や、配列の要素が空か調べる方法については、以下の記事でも詳しく解説しています!

定数の有無を調べる方法(defined)

指定した名前の定数が存在するか調べるにはdefinedを使用します。

書き方:

引数:
対象の定数を指定します。

返り値:
指定した定数が定義されてたらTRUE、それ以外はFALSEを返します。

以下にdefinedを使用して定数が定義されているか、確認するサンプルを紹介します。

サンプルプログラム:

実行結果:

定数については以下の記事でも詳しく紹介していますので参考にしてくださいね!

isset関数のパフォーマンスはどうなの?

変数の値が空かNULLか調べるのにisset関数は便利ですが、速度面ではどうなのでしょうか?

以下の記事ではisset関数と、配列のキーが空か調べるarray_key_exists関数で、どちらの検索処理が早いか?比較を行っています。

気になる方はぜひ確認してみてくださいね!

まとめ

ここではisset関数を使用して、

・変数の値がセットされているか確認する方法
・判定文で使用する方法
・配列の要素を調べる方法
・empty関数で変数がセットされているか調べる方法

などについて、解説しました。

また、定数の存在有無を調べるdefinedについても紹介しました。

実際のプログラムでも変数の値がセットされているか、調べる処理はよく使用します。

もし、isset関数の使い方を忘れてしまったら、この記事を思い出してくださいね。

おすすめのコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

「何の言語から勉強すればいいかわからない・・・」そんなあなたに質問に答えていくだけで、何の言語を学べば良いのか診断いたします!未経験から6ヶ月でプログラミング習得に向けた学習プランが1分で分かる!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

3000名以上来場の人気セミナーが開催決定

18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

  • 日付:4/20(土),4/27(土)
  • 時間:14:00〜17:35終了予定
  • 場所:当社 道玄坂オフィス
  • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
  • 参加費:無料
  • URL:https://seminar.sejuku.net/
詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります