nullとis_null

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

コメントを残す

メールアドレスが公開されることはありません。