フォームからpostされたデータを受け取る場合、それがnullかnullでないかを判定するのにphpではis_nullメソッドを使うのが便利らしい。しかし、そのis_nullの挙動がどうもおかしい気がする。仮にtestという名前をもったinput要素のフォームからデータが送られたとする。受け取り側では、そのデータを扱うときは$_POST[‘test’]という変数を扱う。valueがセットされていなければnullになるはずなのに、is_nullメソッドを通すとnullではないという判定になる。一方、is_nullを使わずに直で$_POST[‘test’] == null と比較するとnullであるという判定になる。なんでだ。
if(is_null($_POST['test'])){ print "null"; }else{ print "not null"; } if($_POST['test'] == NULL){ print "null"; }else{ print "not null"; }