こんにちは、
最新はジムで運動にはまっていますが、思うように体重・体脂肪が落ちず悩んでいるサトウです。
さて、本題に入りたいと思います。
プログラミングの学習をしていくと、「変数」を使うケースが増えてきます。
特に使用する変数も増えてくると、「変数」にどんな値が入っているか把握できなくなる場合もありますよね。
そんな時、phpでは変数の中身を確認する「isset」を使用する場面があります。
プログラミング学習をはじめたばかりだと理解しにくい部分もあるのではないかと思い、今回は「isset」について分かりやすく説明していきます。
「isset」 についてよく分からない方や、同じく変数の中身を確認できる「empty」との違いについてよく分からない方も、是非読んでみてくださいね。
issetとは
issetは変数に値(中身)が入っているかチェックできる関数です。
プログラミングにおける変数とは、値(データ)を格納するための仕組みのことを言います。isset関数で変数に値が入っているかどうかをチェックすることで、処理を分岐させたり・変数の中身を表示するといった処理につなげていくことが可能です。
issetの書き方
issetの基本的な書き方
使用方法はシンプルで、isset(変数名)とすることで中身を確認することができます。
・値が入っているか確認する場合
var_dump(isset(変数名));
・if関数等と組みあわせて使用する場合
(変数に中身があれば、それを画面出力する、という書き方)
if(isset(変数名)){
echo 変数名;
}
サンプルコードで確認してみましょう。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php // 変数の初期化 $text = ''; $int = ''; // 変数に中身を格納 // textに文字列、intに数値を格納 $text = 'issetの中に文字列を格納'; $int = 1234; // 変数に中身があれば「true」を返す //var_dumpの結果を出力するために<pre>タグで囲んでいます echo ('<pre>'); var_dump(isset($text)); echo('</pre>'); echo ('<pre>'); var_dump(isset($int)); echo('</pre>'); // 変数の中身を画面出力 if(isset($text)){ echo $text.'<br>'; } if(isset($int)){ echo $int.'<br>'; } ?> |
出力結果
【参考】
「bool」とはbooleanの略で、真偽値という意味にになります。
結果を「true」か「false」で確認したい時に使用します。
使用方法は非常にシンプルですね。
emptyの書き方
phpではissetの他にも変数の中身を確認できる書き方ができます。それが以下で紹介する「empty」です。emptyは値が空かどうかをチェックできる書き方です。
emptyとissetの違い
empty:変数の中身が空かどうかをチェック
書き方
・値が空かどうかを確認する場合
var_dump(empty(変数名));
・値が空でないかを確認する場合
var_dump(!empty(変数名));
・if関数等と組みあわせて使用する場合
(1)変数の中身が空であれば、それを画面出力する、という書き方
if(empty(変数名)){
echo 変数名;
}
(2)変数の中身が空であれば、それを画面出力する、という書き方
if(!empty(変数名)){
echo 変数名;
}
※「空でない場合」を条件にする時は「!」をつけます
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php // 変数の初期化 $test = 'emptyを検証'; $test2 = ''; // 変数に中身がなけれ「true」を返す //var_dumpの結果を出力するために<pre>タグで囲んでいます echo ('<pre>'); var_dump(empty($test)); echo('</pre>'); echo ('<pre>'); var_dump(empty($test2));//値を格納していないのでtrueが返ってくる echo('</pre>'); // $test:中身があれば画面出力 if(!empty($test)){ echo '結果はtrue:'.$test.'<br>'; } // $test2:空であれば「結果はfalse:変数の中身が入っていません」と表示 if(empty($test2)){ echo '結果はfalse:変数の中身が入っていません'; } ?> |
実行結果
test2は値を入れていないので「true(空ですよ)」と返しています。
issetとemptyの違い
issetとemptyの書き方を理解できたところで、違いを説明していきます。
issetとemptyでは中身が「0」の時には特に注意が必要です。
変数の中身が0の場合は以下の結果になります。
empty:false(中身がない)
実際のコードでも確認してみましょう。
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php // 変数の初期化 $test1 = 123; $test2 = 0;//数字の0 $test3 = '0';//文字列の0 // issetで中身があるか確認 echo '=====issetの場合====='; echo ('<pre>'); echo 'test1=数値型の123'.var_dump(isset($test1)); echo('</pre>'); echo ('<pre>'); echo 'test2=数値型の0'.var_dump(isset($test2));//0でもtrueが返ってくる(数字) echo('</pre>'); echo ('<pre>'); echo 'test3=文字列型の0'.var_dump(isset($test3));//0でもtrueが返ってくる(文字列) echo('</pre>'); echo '=====emptyの場合====='; // emptyで中身がないか確認 echo ('<pre>'); echo 'test1=数値型の123'.var_dump(empty($test1)); echo('</pre>'); echo ('<pre>'); echo 'test2=数値型の0'.var_dump(empty($test2));//0でもtrueが返ってくる(数字) echo('</pre>'); echo ('<pre>'); echo 'test3=文字列型の0'.var_dump(empty($test3));//0でもtrueが返ってくる(文字列) echo('</pre>'); ?> |
実行結果
数値でも文字列でも「0」を格納した際は、issetがtrue(0という中身がありますよ!)という結果になり、emptyがtrue(0なので中身がありませんよ!)という結果になりましたね。emptyとissetをどちらを扱えば良いか判断できない場合は「この画面では0を扱うか・表示するか」どうかという視点で考えてみましょう。
・ユーザー登録フォームで年齢を入力する場合
・ECサイト等で数値や個数を入力する場合
こういった場合は「0」を入力する機会が多いので、issetを使用した方が良さそうですね。開発するシステムや作成する画面で異なるので、是非参考にしみてください。
NULLを扱う場合
ここまでは変数の「中身があるかどうか」「空かどうか」を確認する方法を説明してきました。
似たような考え方でphpでは「NULL(ヌル)」というが概念も存在します。phpでNULLとは特殊な値で変数が値を持っていないですよ、ということ表します。
ここでは変数の中身がNULLかどうかチェックする方法を紹介します。
書き方
is_null(変数名)
コードサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php // 変数の中にNULLを格納 $test_null = NULL; // is_nullで中身をチェック echo ('<pre>'); echo var_dump($test_null);//0でもtrueが返ってくる(数字) echo('</pre>'); // 中身がnullであれば、「中身がnullです」と表示 if(is_null($test_null)){ echo '中身がnullです'; } ?> |
実行結果
変数の中身がNULL値であった場合、予期せぬエラーが発生してしまう可能性もあります。is_null関数の使用方法を覚えて、効率的にシステム開発できるようにしましょう。
まとめ
いかがでしたか?今回は、phpでよく使用されるissetについて説明しました。
プログラミングを学び始めた段階だと「isset」の使い方や使用する場面等が理解しにくい部分もあるかと思います。ですが何度も繰り返し学習すればすれば簡単に使えることができるようになると思うので、焦らずゆっくりと理解を深めていってくださいね。
この記事が、phpの学習に役立つと嬉しいです。