您好,欢迎访问一九零五行业门户网

一个遍历文件目录的function,有两个问题请指教?

问题一、static $file_list 的static是为递归叠加使用,如何避免外面两次以上调用,后边的结果里叠加前边调用的结果?
问题二、形参$ext_name是否分成两个参数($mode=true,$ext_name='')比较合理? //遍历文件(文件列表)static function scan($dir,$ext_name=true){$dir_tree=array();static $file_list=null;static $the_file_list=null;foreach (scandir($dir) as $file) {$file_location=trim($dir,'/').'/'.$file;if (is_dir($file_location) && $file!=. && $file!=..) {array_push($dir_tree,self::scan($file_location,$ext_name));} else {if (($file!='.' && $file!='..') || !is_dir($file)) {if ($ext_name===true) {$file_list[]=$file_location;}if ($ext_name && $ext_name==trim(strrchr($file,'.'))) {$the_file_list[]=$file_location;}$tmp=explode('/',$dir);array_push($dir_tree,''.end($tmp).' '.$file);}}}$result=($ext_name===true) ? $file_list : $the_file_list;return $ext_name ? $result : $dir_tree;}
复制代码
其它类似信息

推荐信息