function _do_walk_dir($dir, $separator, $function_def, &$return_params, $params) { if (is_dir($dir)) { $handle = opendir($dir); while (($file = readdir($handle)) !== false) { if ($file != '.' && $file != '..') { call_user_func_array($function_def, array('dir' => $dir, 'file' => $file, 'params' => $params, 'return_params' => &$return_params)); if (is_dir($dir . $separator . $file)) { dir::_do_walk_dir($dir . $separator . $file, $separator, $function_def, &$return_params, $params); } } } closedir($handle); } }