/* 遞歸自身調用自身,每次調用把問題簡化,直到問題解決 即:把大的任務拆成相同性質的多個小任務完成 */ /* 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
<?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'; ?>