PHPのisset関数で変数に値がセットされているかを確認する方法【初心者向け】
プログラミング初心者向けにPHPのisset関数を使って変数の中身が存在するかどうか確認する方法について解説しています。変数に値が入っていた時、入っていなかった時の処理を簡単に行えるので、ぜひ今のうちに理解しておきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPで使うisset関数の使い方について解説していきます。
初心者の方がまず最初に覚えておきたい知識ではないですが、いざという時に便利なので使えるようになっておくと良いでしょう。実際にどんな場面で利用できるかサンプルも用意しているので、ぜひ自分でもプログラムを書いてみてください。
そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。
なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

田島メンター!フォームから送信されたデータでどうしても入力して欲しい項目があるんですが、値がちゃんとセットされているかどうか調べる方法はありますか?

isset関数があって、値がセットされているかどうかがわかるんだ。

セットされていなければ、処理しないようにするって感じですかね。

そうそう。では、isset関数を見てみよう!
issetとは
プログラミングを学習していくと、かならず耳にするのが変数という言葉です。
変数とは、値(データ)を格納するための仕組みのことを言いますが、isset関数は、この変数に値がはいっているかどうかをチェックする関数なのです。
正確にいうと、isset関数は、変数に値がセットされていて、かつNULLでないときに、TRUE(真)を戻り値として返します。NULLとは、変数が値を持っていないことをあらわす特別な値です。
たとえば、下記のような変数を、isset関数の引数として実行してみると、変数1はTRUE、変数2や変数3は、FALSEとなります。
入力フォームから、氏名や住所などの必要事項が入力されているかどうかをチェックしたり、チェックボックスにチェックされているかどうかを確認するにするなど、チェック処理として使用することができそうですね。
今回は、isset関数を使って、変数に値がセットされているかどうかを確認する方法について紹介します。

値があれば、trueが返ってくるっていうのはわかるんですが、NULLは?

NULLは特別な値で、何も無いことを示すんだ。変数にNULLが入っていても、何もセットされていないって判断されるんだ。まあ、最初の内は気にしなくてもいいかも。

データなし、というのは値が空ってことですか?

$a=”;って、空だけどissetでは、空の値がセットされているって判断されるんだよね。だから、trueになるんだ。変数そのものが定義されていない場合かな。
isset()の書き方
書式
isset (引数)
説明
引数は、変数を指定します。
変数に値がセットされているかつNULLでない場合にTRUEを戻り値として返します。
それ以外は、FALSEを戻り値として返します。
例
isset関数は、if-else文と合わせて、下記のような使い方をすることが多いようです。
if ( isset ( 変数1 ) ) { 変数1がセットされているときの処理; }else{ 変数1がセットされていないときの処理; }
[PR] PHPプログラミングで挫折しない学習方法を動画で公開中
実際にisset関数を使ったプログラムを書いてみよう。
それでは、実際にisset関数を使用して、簡単なサンプルプログラムを作成してみましょう。
ここでは、PHPでよく使われるリクエストパラメータという変数を使ってみます。リクエストパラメータを使うと、入力フォームから名前を取得したり、チェックボックスのチェック状況を確認することができます。
リクエストパラメータ名は、checkになります。
リクエスとパラメータの値を取得するのに、$_REQUEST[ ‘リクエストパラメータ’]を使用します。
処理内容
1.ブラウザ上のフォームから、契約内容を承認して商品を購入する場合は、チェックBOXにチェックします。
2.ブラウザでは、チェック結果をリクエストパラメータcheckに格納し、WEBサーバーに伝えます。
3.WEBサーバでは、リクエストパラメタに格納されたcheck状況をチェックします。
4.WEBサーバは、リクエストパラメータのチェック状況に応じて、実行結果をリスポンスとして、ブラウザに返します。
(1)チェックが入力されていれは、「商品をお届けします。」というリスポンスを返します。
(2)チェックが入力されていなければ、「またの機会をお待ちしています。」というリスポンスを返します。
5.ブラウザは、WEBサーバからのリスポンスを表示します。
処理の流れ
入力プログラム(check-input.php)
<form action="check-output.php" method="post"> <p><input type="checkbox" name="check">契約内容を承諾し、商品を購入します。</p> <p><input type="submit" value="確定"></p> </form>
出力プログラム(check-output.php)
<?php if(isset($_REQUEST['check'])) { echo '商品をお届けします。'; }else{ echo 'またの機会をお待ちしています。'; } ?>
実行結果1(チェックありの場合)
チェックボックスにチェックを入れ、確定ボタンを押します。
実行結果2(チェックなしの場合)
チェックをいれずに、確定ボタンを押します。
おわりに
isset関数の説明は以上です。
今回のようなサンプルプログラム以外にも、いろいろな応用ができそうです。ぜひ、一度、試してみたください。

チェックボックスをクリックしていない状態だと、処理が変わりますね~。

チェックボックスの場合は、クリックしていないと受け取る側の変数にセットされないんだ。

セリフ

セリフ
チェックボックスをクリックしていない状態だと、処理が変わりますね~。
チェックボックスの場合は、クリックしていないと受け取る側の変数にセットされないんだ。
inputのtext属性の場合はどうなるんですか?
text属性の場合は、空の場合でも空として変数がセットされるよ。この場合、空かどうかの判定が必要になるね。
PHPを勉強していて、
- もっと効率的に勉強したい
- 誰かに聞きながら学びたい
- 自分でWebサービスを作りたい
と思ったことはないでしょうか。
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
独学に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)