正文
php之递归调用,递归创建目录
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
/*
递归自身调用自身,每次调用把问题简化,直到问题解决
即:把大的任务拆成相同性质的多个小任务完成
*/
/*
function recsum($n){
if($n>1){
return $n + recsum($n-1);
}else{
return 1;
}}
//递归调用
echo recsum(10).'<br />';
*///最先调用,最后返回
//递归:一个函数,自身调用自身,必有终止条件function sum($n){
if($n>1){
echo $n.'<br />';
return sum($n-1)+$n;//1,3,6,10,15} else {
echo 1 .'<br />';
return 1;
}
}echo sum(5);
/*
分析
sum(1)=1
sum(2)=sum(1)+2;
sum(3)=sum(2)+3
sum(4)=sum(3)+4
sum(5)=sum(4)+5
*/
递归创建目录
<?php
/*
递归创建目录*/
/*第一种方法
function mk_dir($path) {
//
if(is_dir($path)) {
//
return true;
}
//目录的父目录存在
if (is_dir(dirname($path))) {
# code...
return mkdir($path);
}
//父目录不存在,创建父目录
mk_dir(dirname($path));
return mkdir($path);
}echo mk_dir("d:/a/ac/d/g/d/")?'ok':'fail';
*///第二种方法
function mk_dir($path){
//如果目录已经存在,直接返回
if (is_dir($path)) {
# code...
return true;
}
//如果目录不存在,创建
//父目录不一定存在,
return is_dir(dirname($path)) || mk_dir(dirname($path))?mkdir($path):false;
}
echo mk_dir('./a/n/d/c')?'ok':'fail';?>