PHPのisset関数で変数に値がセットされているかを確認する方法【初心者向け】

プログラミング初心者向けにPHPのisset関数を使って変数の中身が存在するかどうか確認する方法について解説しています。変数に値が入っていた時、入っていなかった時の処理を簡単に行えるので、ぜひ今のうちに理解しておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPで使うisset関数の使い方について解説していきます。

初心者の方がまず最初に覚えておきたい知識ではないですが、いざという時に便利なので使えるようになっておくと良いでしょう。実際にどんな場面で利用できるかサンプルも用意しているので、ぜひ自分でもプログラムを書いてみてください。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

そうそう。では、isset関数を見てみよう!

 

 

issetとは

プログラミングを学習していくと、かならず耳にするのが変数という言葉です。

変数とは、値(データ)を格納するための仕組みのことを言いますが、isset関数は、この変数に値がはいっているかどうかをチェックする関数なのです。

正確にいうと、isset関数は、変数に値がセットされていて、かつNULLでないときに、TRUE(真)を戻り値として返します。NULLとは、変数が値を持っていないことをあらわす特別な値です。

たとえば、下記のような変数を、isset関数の引数として実行してみると、変数1はTRUE、変数2や変数3は、FALSEとなります。

471f50572d6f2ab50c484afcfbbc616f

入力フォームから、氏名や住所などの必要事項が入力されているかどうかをチェックしたり、チェックボックスにチェックされているかどうかを確認するにするなど、チェック処理として使用することができそうですね。

今回は、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サーバからのリスポンスを表示します。

 

処理の流れ

4a3f282729627229915625905aaac8a8

 

 入力プログラム(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(チェックありの場合)

sample2

チェックボックスにチェックを入れ、確定ボタンを押します。

sample3

 

実行結果2(チェックなしの場合)

sample1

チェックをいれずに、確定ボタンを押します。

sample4

 

おわりに

isset関数の説明は以上です。

今回のようなサンプルプログラム以外にも、いろいろな応用ができそうです。ぜひ、一度、試してみたください。

PHPをさらに勉強したい場合は、PHPで構文チェックを行う方法PHPとHTMLをまとめてコメントアウトする方法についても合わせて読んでみてください。

大石ゆかり

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

田島悠介

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

大石ゆかり

inputのtext属性の場合はどうなるんですか?

田島悠介

text属性の場合は、空の場合でも空として変数がセットされるよ。この場合、空かどうかの判定が必要になるね。

 

PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。