php递归用法与递归目录实例
时间:2014-07-12 11:31来源:未知 作者:最模板zuimoban 点击:
次
在php中递归算法是我们比得不多的一种数据遍历方式了,下面我来给大家介绍一下利用递归来做一下用的东西吧,看一个简单的递归实例. 例1,代码如下: function demo( $a ){ static $sum =1; if ( $
在php中递归算法是我们比得不多的一种数据遍历方式了,下面我来给大家介绍一下利用递归来做一下用的东西吧,看一个简单的递归实例.
例1,代码如下:
-
function demo($a) {
-
-
static $sum=1;
-
-
if($a > 1){
-
-
$sum*=$a;
-
-
demo(--$a);
-
-
}else{
-
-
$a=$sum;
-
-
}
-
-
return $sum;
-
-
}
-
echo demo(10);
例2,遍历目录,代码如下:
-
<?php
-
class listdir{
-
var $depth;
-
var $dirname;
-
var $list;
-
var $tostring;
-
-
function listdir($dir){
-
$this->dirname=$dir;
-
$this->depth=0;
-
$this->tostring=”";
-
}
-
-
-
function getlist($dir=”"){
-
if($dir==”")$dir=$this->dirname;
-
$d=@dir($dir);
-
while(false!==($item=$d->read()))
-
{
-
if($item!=”.”&&$item!=”..”)
-
{
-
$path=$dir.”/”.$item;
-
if(is_dir($path)){
-
$this->depth+=1;
-
$this->getlist($path);
-
}else{
-
$this->list[$this->depth][]=$item;
-
}
-
}
-
}
-
$this->list[$this->depth]['directory']=$dir;
-
$this->depth-=1;
-
$d->close();
-
return $this->list;
-
}
-
-
-
-
function tostring($dir=”"){
-
if($dir==”")$dir=$this->dirname;
-
$d=@dir($dir);
-
$this->tostring.=”<UL>n”;
-
$this->tostring.=”Directory:”.$dir.”n”;
-
while(false!==($item=$d->read()))
-
{
-
if($item!=”.”&&$item!=”..”)
-
{
-
$path=$dir.”/”.$item;
-
if(is_dir($path)){
-
$this->depth+=1;
-
$this->tostring($path);
-
}else{
-
$this->tostring.=”<LI>”.$item.”</LI>n”;
-
}
-
}
-
}
-
$this->depth-=1;
-
$d->close();
-
$this->tostring.=”</UL>n”;
-
return $this->tostring;
-
}
-
}
-
$wapdir=”jquery”;
-
$d=new listdir($wapdir);
-
echo $d->tostring();
-
?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
(责任编辑:最模板) |
------分隔线----------------------------