issetは変数や配列に要素を設定しているかどうかを判定する関数です。
「NULL」か「未設定」の場合にTRUEを返し、それ以外の場合はFALSEを返します。
この関数を使えばフォーム等から受け取ったデータを調べて振る舞いを換えたりできます。
例えば、フォームの項目を無記入で送信された場合に
「記入がありません」とエラーを返すなどが出来る重要な関数です。
isset関数
$p1=1; if(isset($p1)==TRUE) { print "設定されている<br>"; } else { print "設定されていません<br>"; }
このプログラムは$p1が「設定されている」か「設定されて無い」かを調べる物です。
この場合$p1には1が設定されているので、当然「設定されている」が表示されます。
ちなみに、この例ではisset($p1)==TRUEとなっていますが
issetはTRUEかFALSEというif文等で使う条件式の結果そのものを返すので
if(isset($p1)==TRUE)は重複判定となります。
基本的にはif(isset($p1))と書かれるのが一般的です。
じゃあFALSEでif判定したい場合はif(isset($p1))で良いのかというとそうでは無く
「!」というTRUEをFALSEに、FALSEをTRUEに逆転する演算子を使って
if(!isset($p1))と書かれます。
配列も同じように使用できます。
例えばこのように戦士のパラメータの配列を作ったとします。
$list["戦士"]["HP"]=50;
見ての通りHPが50としか設定していません。
次に以下のような条件文でふるいにかけます。
if(isset($list["戦士"])) { print 'list["戦士"]<BR>'; } if(isset($list["戦士"]["HP"])) { print 'list["戦士"]["HP"]<BR>'; } if(isset($list["戦士"]["MP"])) { print 'list["戦士"]["MP"]<BR>'; } if(isset($list["戦士"]["攻撃力"])) { print 'list["戦士"]["攻撃力"]<BR>'; } if(isset($list["戦士"]["防御力"])) { print 'list["戦士"]["防御力"]<BR>'; }
実行すると結果は以下のように値が設定されているもののみを表示します。
[“戦士”]と[“HP”]は設定しているので表示されますが
[“戦士”]の中に[“MP”][“攻撃力”][“防御力”]は設定していないので表示されません。
このようにどこが設定されているを調べる事ができます。
次回は変数や配列を破棄する方法を紹介します。