ホームページ > バックエンド開発 > PHPチュートリアル > PHP の再帰的使用法と再帰的ディレクトリの例_PHP チュートリアル

PHP の再帰的使用法と再帰的ディレクトリの例_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:48:04
オリジナル
1184 人が閲覧しました

PHP では、再帰アルゴリズムは、私たちが備えている数少ないデータ トラバーサル手法の 1 つです。再帰を使用した便利なものをいくつか紹介します。

簡単な再帰の例を見てみましょう

例1

ディレクトリを横断する
コードは次のとおりです コードをコピー

関数デモ($a) {

静的 $sum=1;

if($a > 1){

$sum*=$a;

デモ(--$a);

}その他{

$a=$sum;

}

$sum を返します。

}

エコーデモ(10);


例 2

コードは次のとおりです

コードをコピー クラスリストディレクトリ{ var $深さ;
var $ディレクトリ名;

var $list;
var $tostring;

関数リストdir($dir){
$this->dirname=$dir;
$this->深さ=0;

$this->tostring=””;

}

//結果を多次元配列に保存します
関数 getlist($dir=""){
if($dir==”")$dir=$this->ディレクトリ名; $d=@dir($dir);

while(false!==($item=$d->read()))
{
if($item!=”.”&&$item!=”..”)
{
$path=$dir.”/”.$item;
if(is_dir($path)){
$this->深さ+=1;
$this->getlist($path);
}その他{
$this->リスト[$this->深さ][]=$item;
}
}
}
$this->リスト[$this->深さ]['ディレクトリ']=$dir;
$this->深さ-=1;
$d->close();
$this->リストを返す;
}

//キャラクターの変身結果

関数tostring($dir=""){

if($dir==”")$dir=$this->ディレクトリ名;

$d=@dir($dir);

$this->tostring.=”
    n”;

    $this->tostring.=”ディレクトリ:”.$dir.”n”;
    while(false!==($item=$d->read()))
    {
    if($item!=”.”&&$item!=”..”)
    {
    $path=$dir.”/”.$item;
    if(is_dir($path)){
    $this->深さ+=1;
    $this->tostring($path);
    }その他{
    $this->tostring.=”

  • ”.$item.”
  • n”;
    }
    }
    }
    $this->深さ-=1;
    $d->close();
    $this->tostring.=”
n”;
$this->tostringを返す;
}
}
$wapdir=”jquery”;
$d=新しいリストディレクトリ($wapdir);
echo $d->tostring();
?>

出力結果:

    ディレクトリ:jquery

  • jquery-1.3.2.js
  • jquery-1.3.2.min.js
  • jquery-1.3.2-vsdoc2.js

  • test.html

  • common.js


    • ディレクトリ:jquery/d
    • common.js

    • jquery-1.3.2.js






http://www.bkjia.com/PHPjc/632807.html

www.bkjia.com

http://www.bkjia.com/PHPjc/632807.html技術記事 PHP では、再帰アルゴリズムは数少ないデータ トラバーサル手法の 1 つです。再帰を使用した便利な機能をいくつか紹介します。 簡単な再帰の例を見てください...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート