0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

isset について

Posted at

##issetを使う機会が多かったのでメモを残しておきます。

###issetとは
変数にnull以外の値がセットされているかどうか検証する。

まず、3つの変数を初期化しておく。

qiita.php
$a = 'a';
$b = null;
$c = ['aa'=>'a', 'bb'=>null];

以下の状態でNoticeエラーが発生するのはどれか。

qiita.php
echo $a."\n"; //a
echo $b."\n";//出力なし
echo $d."\n";//Noticeエラー
echo $c['aa']."\n";//a
echo $c['bb']."\n";//出力なし
echo $c['dd']."\n";//Noticeエラー

変数d,c['dd']は初期化されていないので参照した瞬間にNoticeエラーになる。

以下の関数を定義

qiita.php
function echoBool($bl){
  if($bl) echo 'YES';
  else echo 'NO';
}

isset()をechoBoolした結果

qiita.php
echoBool(isset($a)); //YES
echoBool(isset($b)); //NO
echoBool(isset($c)); //YES
echoBool(isset($d); //NO    *
echoBool(isset($c['aa'])); //YES
echoBool(isset($c['bb'])); //NO
echoBool(isset($c['dd'])); //NO  *

*の場合もNoticeエラーは発生しない。
issetの特性上、初期化していない変数を参照した時もNoticeエラーが発生しない。

この特性を使って、問い合わせフォームなどのバリデーションチェック実装時などに、「初期化されているか分からない変数」の中身を参照したいときに利用する。

何かご指摘ありましたら遠慮なくコメント下さい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?