>>762
あとさらに付け加えるなら、
$dir_list = create_function()
で作られる$dir_listはグローバル変数な。
create_function ('$dir', '$dir_list = (ディレクトリ取得);
 foreach ($dir_list as $list) {
  $dir_list($list);
 }
}');
とcreate_function内で使われてる$dir_listは関数内のローカル変数な。

そんだけわかりゃ何とかなるんでない?
基本的にはfunction定義で何とかできることはcreate_functionでも何とかできる。