##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エラーが発生しない。
この特性を使って、問い合わせフォームなどのバリデーションチェック実装時などに、「初期化されているか分からない変数」の中身を参照したいときに利用する。
何かご指摘ありましたら遠慮なくコメント下さい。