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";
	}

pageIDを指定して、その子要素を表示させる方法

<?php
global $id;
wp_list_pages(“child_of=$id&sort_column=menu_order&title_li=”);
?>

global $id; の部分はwordpressのグローバル変数にアクセスする、ということになる。通常はこんなことはやらないが、wordpressのテンプレートタグにpageのIDを指定するということができないため、無理をして実現したというところ。親コンテンツの子要素のページのみ表示をさせたい、というときに上記のコードを使う。