フォームから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";
}