PHP型の比較備忘録
引っ越しして約1週間が経ちました、ichikawaです。
人生初のバス通勤をしています。桜の中をくぐりぬけての出勤、いいものです。
本日は、うっかりしがちな「変数の型によって異なるPHP関数での判定」について、簡単にまとめてみました。
値 | empty | is_null | isset | if($x) |
---|---|---|---|---|
$x = 0; | TRUE | FALSE | TRUE | FALSE |
$x = "0"; | TRUE | FALSE | TRUE | FALSE |
$x = ""; | TRUE | FALSE | TRUE | FALSE |
$x = null | TRUE | TRUE | FALSE | FALSE |
$x = array(); | TRUE | FALSE | TRUE | FALSE |
理解が大事な場面は多々ありますが、例えば以下の様な場合…
if (empty($params)) { // 0もはじかれちゃう
return '';
}
return $data[$params] ;
データが空だったらはじく、というつもりが、0の場合にもはじかれちゃったります。
基本的な事ですが、うっかりすると痛いので気をつけましょう。