ホームページ >バックエンド開発 >PHPチュートリアル >ファイルディレクトリを横断する関数 2つ質問がありますので、アドバイスをお願いします。

ファイルディレクトリを横断する関数 2つ質問がありますので、アドバイスをお願いします。

WBOY
WBOYオリジナル
2016-07-25 08:49:491055ブラウズ
質問 1: static $file_list の static は再帰的な重ね合わせに使用され、前の呼び出しの結果が後続の結果に重ね合わされることを回避するにはどうすればよいですか?
質問 2: 仮パラメータ $ext_name を 2 つのパラメータ ($mode=true、$ext_name='') に分割するのは合理的ですか?
  1. //ファイル(ファイルリスト)を走査
  2. static function scan($dir,$ext_name=true){
  3. $dir_tree=array();
  4. static $file_list=null;
  5. static $the_file_list=null;
  6. foreach (scandir($dir) as $file) {
  7. $file_location=trim($dir,'/').'/'.$file;
  8. if (is_dir($file_location) && $file!= ." && $file!="..") {
  9. array_push($dir_tree,self::scan($file_location,$ext_name));
  10. } else {
  11. if (($file!='.' && $ file!='..') || !is_dir($file)) {
  12. if ($ext_name===true) {
  13. $file_list[]=$file_location;
  14. }
  15. if ($ext_name && $ext_name= =trim(strrchr($file,'.'))) {
  16. $the_file_list[]=$file_location;
  17. }
  18. $tmp=explode('/',$dir);
  19. array_push($dir_tree,'< Strong>'.end($tmp).' '.$file);
  20. }
  21. }
  22. }
  23. $result=($ext_name===true) ?
  24. return $ext_name ? $result : $dir_tree;
  25. }
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。