PHP issetの基本的な書き方とは?他の関数との比較も紹介!

コラムCOLUMN

PHP issetの基本的な書き方とは?他の関数との比較も紹介!

2021/03/11

PHPで変数にNULLや空の値が設定されており、例外なエラーが発生したことはありませんか。

PHPには例外なエラーを防ぐため、変数に値が正しく設定されているかを確認する関数があります。

ここでは、isset関数とは何か、isset関数の基本的な書き方、isset関数と類似している関数との比較やisset関数の応用的な使い方について紹介します。

PHP|isset関数とは?

isset関数とは、引数に指定した変数に値が設定されている、かつ、NULLではない場合にはtrue(正)の値を戻り値とします。

それ以外は、戻り値にfalse(偽)の値を返します。

書き方:

bool isset($var1 [, $var2 …])

引数:

isset関数の引数には一つから設定でき、複数の変数を設定することが可能です。

指定した変数に値が設定されているのか、かつ、NULLではないかを確認します。

戻り値:

isset関数の戻り値は、引数で指定した変数に値が設定されているのか、かつ、NULLではない場合にはtrueを返します。

それ以外は、falseを返します。

また、複数の変数を引数に指定した場合には、全ての変数に対する結果がtrueとなる場合にのみ、戻り値はtrueを返します。

サンプルコード:

<?php

          //解説①
          $var1 = "sample";
          $var2 = "program";

          //解説②
          var_dump(isset($var1));
          var_dump(isset($var1, $var2));

          //解説③
          unset($var1);

          //解説④
          var_dump(isset($var1));
          var_dump(isset($var1, $var2));

?>

実行結果:

bool(true)
bool(true)
bool(false)
bool(false)

解説:

サンプルコードでは、isset関数の戻り値を確認しています。

①変数var1とvar2にそれぞれ値を設定する。

②var_dump関数でisset関数の戻り値を表示する。

 ここでは、var1とvar2に値が設定されているため、isset関数の戻り値はtrueが返る。

③unset関数でvar1の値を削除する。

④var_dump関数でisset関数の戻り値を表示する。

 ここではvar1の値が設定されていないため、isset関数の戻り値はfalseが返る。

また、isset関数で複数の変数を指定し、その内一つでも値が設定されていない場合には、isset関数の戻り値はfalseが返る。

PHP|isset関数の基本的な書き方

isset関数は、戻り値bool(真偽値)であるtrueとfalseを返します。

そのため、if-else文と合わせて使用されることが多いです。

isset関数とif-else文と合わせる書き方

ここでは、isset関数とif-else文と合わせる書き方についてサンプルコードを用いて紹介します。

サンプルコード:

<?php

          //解説①
          $var = "sample";

                  //解説②
          if(isset($var)){
                  echo "varに値が設定されています¥n";
          }else{
                  echo "varに値が設定されていません¥n";
          }

                  //解説③
                  unset($var);

                  //解説④
          if(isset($var)){
                                 echo "varの値が削除されていません¥n";
          }else{
                                 echo "varの値が削除されました¥n";
          }

?>

実行結果:

varに値が設定されています

varの値が削除されました

解説:

サンプルコードでは、isset関数とif-else文と組み合わせた出力結果の違いを確認しています。

①変数varに値を設定する。

②if-else文では、varに値が設定されているかを確認する。

 ここではvarには値が設定されているため、ifの分岐に入る。

③unset関数でvarに設定されている値を削除する。

④if-else文では、varに値が設定されているかを確認する。

 ここでは③でvarの値を削除しているため、elseの分岐に入る。

PHPisset関数と類似している関数との比較

PHP|isset関数と類似している関数との比較

PHPにはisset関数と類似している関数があります。

ここでは、isset関数と類似している関数との違いを比較しながら紹介します。

isset関数とempty関数の違い

empty関数は、引数で指定した変数に空の値が設定されているかを確認する関数です。

戻り値は指定した変数が空の値の場合にはtrue、それ以外はfalseを返します。

isset関数とempty関数との違いは、確認する値が空の値だけかどうかです。

ここでのNULLと空の値は違うため注意が必要です。

サンプルコード:

<?php

            //解説①
            $val = '';

            //解説②
            if(empty($val)){
                                       echo 'valは空の値です。';
            }else{
                                       echo 'valは空の値ではありません。';
      }

?>

実行結果:

valは空の値です。

解説:

サンプルコードでは変数に空の値を設定した時のempty関数の出力結果を確認しています。

①変数valに空の値を設定する。

②if-else文では、valには空の値を設定しているため、if-else文ではifの分岐に入る。

isset関数とis_null関数の違い

is_null関数は、変数にNULLが設定されているかを確認する関数です。

戻り値は、isset関数と同様にbool(真偽値)であるtrueとfalseを返します。

isset関数とis_null関数との違いは、trueとfalseの戻り値を逆に返すことです。

引数に指定したの変数がNULLの場合には、isset関数ではfalseを返しますが、is_null関数ではtrueを返します。

サンプルコード:

<?php

              //解説①
              $val = NULL;

             //解説②
         if (isset($val)){
                                       echo 'isset関数の戻り値はtrueです。'."¥n";
             }else{
                                       echo 'isset関数の戻り値はfalseです。'."¥n";
}

            //解説③

        if (is_null($val)){
                                       echo 'is_null関数の戻り値はtrueです。'."¥n";
        }else{
                                       echo 'is_null関数の戻り値はfalseです。'."¥n";


                }

?>

実行結果:

isset関数の戻り値はfalseです。

is_null関数の戻り値はtrueです。

解説:

サンプルコードでは、変数valにNULLを設定し、isset関数とis_null関数の戻り値の違いを確認しています。

①変数varにNULLを設定する。

②if-else文では、varにNULLが設定されているため、isset関数の戻り値はfalseとなり、elseの分岐に入る。

③if-else文では、varにNULLが設定されているため、is_null関数の戻り値はtrueとなり、ifの分岐に入る。

isset関数とarray_key_exists関数の違い

array_key_exists関数は、配列の中に指定したキーがあるかどうかを確認する関数です。

isset関数は指定した変数の値を確認しますが、array_key_exists関数では配列のキーを確認するという違いがあります。

また、array_key_exists関数は、指定した配列のキーの値にNULLが入ってたとしても、指定したキーがあればtrueを返します。

サンプルコード:

<?php

          //解説①
         $val_array = [ 'first'=>'first_array','second'=>NULL];

          //解説②
          if(array_key_exists('first', $val_array)){
                      echo '配列のキーfirstがあります。’."¥n";


          }else{
                      echo '配列のキーfirstはありません。'."¥n";
          }

         //解説③

         if(array_key_exists('second', $val_array)){
                    echo '配列のキーsecondがあります。'."¥n";
          }else{
                    echo '配列のキーsecondはありません。'."¥n";
          }

          //解説④
          if(array_key_exists('sample', $val_array)){
                     echo '配列のキーsampleがあります。'."¥n";
          }else{
                     echo '配列のキーsampleはありません。'."¥n";
          }

         //解説⑤
         if(isset($val_array['first'])){
                    echo '配列のキーfirstの値はNULLではありません。'."¥n";
         }else{
                    echo '配列のキーfirstの値はNULLです。'."¥n";
         }

          //解説⑥
         if(isset($val_array['second'])){
                     echo '配列のキーsecondの値はNULLではありません。'."¥n";
         }else{
                      ¥echo '配列のキーsecondの値はNULLです。'."¥n";
         }

?>

実行結果:

配列のキーfirstがあります。
配列のキーsecondがあります。
配列のキーsampleはありません。
配列のキーfirstの値はNULLではありません。
配列のキーsecondの値はNULLです。

解説:

サンプルコードでは、配列のキー名を複数用意し、それぞれの値として任意の値とNULLを設定して、isset関数とarray_key_exists関数の戻り値の違いを確認しています。

①val_arrayに配列のキー名「first」「second」として、それぞれの値を「first_array」NULLに設定する。

②array_key_exists関数を用いて、val_arrayの配列のキーにfirstがあるかを確認している。

ここでは、配列のキーにfirstが設定されているため、trueの分岐に入る。

③一つ目と同様な結果となっている。

④array_key_exists関数を用いて、val_arrayの配列のキーにsampleがあるかを確認している。

サンプルコードでは、val_arrayに配列のキーsampleはないため、falseの分岐に入る。

⑤isset関数を用いて、val_arrayの配列のキーfirstに設定されている値を確認している。

 ここでは、val_arrayの配列のキーfirstに値が設定されているため、trueの分岐に入る。

⑥isset関数を用いて、val_arrayの配列のキーsecondに設定されている値を確認している。

 ここでは、val_arrayの配列のキーsecondにNULLが設定されているため、falseの分岐に入る。

まとめ

今回はPHPのisset関数の基本的な書き方や他の関数との比較について紹介しました。

PHPはフロントエンド開発でもバックエンド開発でも使用することが可能な言語のため、企業側からのニーズも高いです。

そのため、PHPのスキルを向上させていくことで、市場価値を上げていくことにも繋がります。

市場価値を上げフリーランスへの独立を考える場合には、当社が運営するi-common techを利用してみてください。

フリーランスITエンジニア専門のエージェントサービスで、多様な案件の中から培ったスキルや希望に合わせて、マッチした案件を獲得するサポートを行います。

また、案件の紹介だけでなく、面談のフォローや契約・条件面の交渉なども企業との間に入り調整を行うため、自身だけで営業を行うよりも効率的進めることが可能となります。

サービスへ登録し、ぜひ案件獲得にお役立てください。