国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php遞歸函數(shù)怎么用才有效?php遞歸函數(shù)典型例子

2020-03-22 19:01:29
字體:
供稿:網(wǎng)友
有關(guān)php遞歸函數(shù)的用法,分享幾個php遞歸函數(shù)的例子,在php編程中,使用遞歸進(jìn)行函數(shù)調(diào)用很常見,遞歸函數(shù)用的好,可以提高代碼效率,通過例子學(xué)習(xí)php遞歸函數(shù)的使用。

一、什么是遞歸函數(shù)?

一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。 這種函數(shù)稱為遞歸函數(shù)。

php遞歸函數(shù)與非遞歸函數(shù)有什么區(qū)別?

例一:使用靜態(tài)變量

代碼示例:

function test(){    html' target='_blank'>static $dig=0;    if($dig++<10){        echo $dig;        test();    }}test();//12345678910

例二:使用遞歸函數(shù)和循環(huán)實(shí)現(xiàn)字符串逆轉(zhuǎn)排列

代碼示例:

function unreverse($str){    for($i=1;$i<=strlen($str);$i++){        echo substr($str,-$i,1);    }}unreverse("abcdefg");//gfedcbcfunction reverse($str){    if(strlen($str)>0){        reverse(substr($str,1));        echo substr($str,0,1);        return;    }}reverse("abcdefg");//gfedcbc

二、php遞歸函數(shù)使用實(shí)例

php遞歸使用示例(php遞歸函數(shù)),包括遞歸獲得角色I(xiàn)D字符串、遞歸獲取級聯(lián)角色信息數(shù)組、通過父角色的id獲取子角色信息。

例子:

代碼示例:

//遞歸獲得角色I(xiàn)D字符串function explodeRole($roleObj, &$resultStr){  if(0 < count($roleObj->childRoleObjArr)){    foreach($roleObj->childRoleObjArr as $childRoleObj){      if('' == $resultStr){        $resultStr .= "{$childRoleObj->id}";      }else{        $resultStr .= ", {$childRoleObj->id}";      }      explodeRole($childRoleObj, $resultStr);    }  }} //遞歸獲取級聯(lián)角色信息數(shù)組function makeRoleRelation(&$roleObjArr){  foreach($roleObjArr as $item){    $item->childRoleObjArr = getRoleObjArrByParentId($item->id);    if(0 < count($item->childRoleObjArr)){      makeRoleRelation($item->childRoleObjArr);    }  }} //通過父角色的id獲取子角色信息  function getRoleObjArrByParentId($parentid){  $operCOGPSTRTSysRole = new COGPSTRTSysRole();  $operCOGPSTRTSysRole->setColumn($operCOGPSTRTSysRole->getAllColumn());  $operCOGPSTRTSysRole->setWhere("parentroleid={$parentid}");  $roleObjArr = $operCOGPSTRTSysRole->convResult2ObjArr($operCOGPSTRTSysRole->selectTable());  return isset($roleObjArr)?$roleObjArr:array();}

php遞歸函數(shù)用法

例1:使用靜態(tài)變量實(shí)現(xiàn)遞歸。

代碼示例:

function test(){  static $dig=0;  if($dig++<10){    echo $dig;    test();  }}test();//12345678910

例2:使用遞歸函數(shù)和循環(huán)實(shí)現(xiàn)字符串逆轉(zhuǎn)排列。

代碼示例:

 function unreverse($str){  for($i=1;$i<=strlen($str);$i++){  echo substr($str,-$i,1);  }  }  unreverse("abcdefg"); //gfedcbc  function reverse($str){  if(strlen($str)>0){ reverse(substr($str,1));  echo substr($str,0,1); return;  }  }  reverse("abcdefg");//gfedcbc

php遞歸函數(shù)有時可以循環(huán)替代,建議當(dāng)不能用循環(huán)替代時再用,因?yàn)橛醚h(huán)我們更容易理解,更不容易出錯。 php遞歸函數(shù) php支付遞歸函數(shù),遞歸函數(shù)就是調(diào)用自己本身,這些函數(shù)特別適用于瀏覽動態(tài)數(shù)據(jù)結(jié)構(gòu),例如樹和列表。 幾乎沒有web應(yīng)用程序要求使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

例子:

復(fù)制代碼 代碼示例:

0) reverse_r(substr($str,1)); echo substr($str,0,1); return; } ?>

這個程序清單中實(shí)現(xiàn)兩個函數(shù),這兩個函數(shù)都可以相反的順序打印字符串的內(nèi)容 函數(shù)reversr_r是通過遞歸實(shí)現(xiàn)的,而函數(shù)reverse_i()是通過循環(huán)實(shí)現(xiàn)的。

以上就是php遞歸函數(shù)怎么用才有效?php遞歸函數(shù)典型例子 的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP (www.survivalescaperooms.com)!

相關(guān)內(nèi)容推薦:

php遞歸函數(shù) PHP中Array相關(guān)函數(shù)簡介

淺析PHP遞歸函數(shù)返回值的使用

php遞歸函數(shù)return會出現(xiàn)無法正確返回想要值的情況

php自定義函數(shù):遞歸函數(shù)教程視頻

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 栖霞市| 和硕县| 凤台县| 淳安县| 射洪县| 襄樊市| 涟水县| 阿勒泰市| 贞丰县| 黑龙江省| 陵川县| 理塘县| 西乡县| 清涧县| 微山县| 安国市| 尤溪县| 长寿区| 佛冈县| 铜鼓县| 洪泽县| 景洪市| 乐业县| 惠安县| 会宁县| 眉山市| 大新县| 双流县| 玉林市| 车险| 内丘县| 扎兰屯市| 新丰县| 彭阳县| 新源县| 海原县| 东港市| 惠州市| 行唐县| 龙州县| 邛崃市|