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

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

WBOY
リリース: 2016-07-25 08:49:49
オリジナル
1040 人が閲覧しました
質問 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. }
コードをコピー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート