値があるかどうかの判別
if(!empty($○○○))
if(isset($○○○))
の使い分けについて。
前の記事でもチラリと触れた、以下の通り・・
: isset() : !empty()
—————————–
未定義 : FALSE : FALSE
NULL : FALSE : FALSE
FALSE : TRUE : FALSE
空文字 : TRUE : FALSE
空配列 : TRUE : FALSE
0 : TRUE : FALSE
‘0’ : TRUE : FALSE
‘0a’ : TRUE : TRUE
unset後 : FALSE : FALSE
ということですが、
「!empty」のほうが判定が厳しいんだなくらいに思ってました・・汗
ようやく具体的に影響がでる部分にぶちあたったのでメモ。
『もしも、POSTでデータを受け取った時』という条件分岐にて・・・!
①if (!empty($_POST[‘data’]))
{~~
②if (isset($_POST[‘data’]))
{~~
($_POSTの部分は、$_REQUESTでも。)
上記2パターンありますが、さて、
もしも$_POST[‘data’]できちんと「空」の値が渡ってきたときどうするでしょう?
『空』というデータをきちんと受け取って何かのデータを空にしたり処理したい場合は要注意。
①の「!empty」だと、空文字=FALSE(値がない)と判断されて、
続く命令は実行されません。
②の「isset」だと、空文字=TRUE(値アリ)と判断されて、
続く指示は実行されます。
私は「空」を受け取ったらクッキーを空にしたかったのに、
まんまとif(!empty~~ で書いていたのでなぜか空にならない!!と騒いでいました。
ところで。
PHPとかプログラムばっかりさわっていると
CSSを全然触りたくなくなるのはなぜだろう・・・
—–
コメント