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

首頁 > 語言 > PHP > 正文

php遞歸函數怎么用才有效

2024-05-05 00:02:30
字體:
來源:轉載
供稿:網友

有關php遞歸函數的用法,分享幾個php遞歸函數的例子,在php編程中,使用遞歸進行函數調用很常見,遞歸函數用的好,可以提高代碼效率,通過例子學習php遞歸函數的使用。

一、什么是遞歸函數?

一個函數在它的函數體內調用它自身稱為遞歸調用。 這種函數稱為遞歸函數。

php遞歸函數與非遞歸函數有什么區別?

例一:使用靜態變量

代碼示例:

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

例二:使用遞歸函數和循環實現字符串逆轉排列

代碼示例:

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遞歸函數使用實例

php遞歸使用示例(php遞歸函數),包括遞歸獲得角色ID字符串、遞歸獲取級聯角色信息數組、通過父角色的id獲取子角色信息。

例子:

代碼示例:

//遞歸獲得角色ID字符串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); } }}//遞歸獲取級聯角色信息數組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遞歸函數用法

例1:使用靜態變量實現遞歸。

代碼示例:

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

例2:使用遞歸函數和循環實現字符串逆轉排列。

代碼示例:

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遞歸函數有時可以循環替代,建議當不能用循環替代時再用,因為用循環我們更容易理解,更不容易出錯。 php遞歸函數 php支付遞歸函數,遞歸函數就是調用自己本身,這些函數特別適用于瀏覽動態數據結構,例如樹和列表。 幾乎沒有web應用程序要求使用復雜的數據結構。

例子:

代碼示例:

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

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

總結

以上所述是小編給大家介紹的php遞歸函數怎么用才有效,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长海县| 紫云| 凤城市| 高台县| 阳山县| 屯门区| 韩城市| 崇文区| 五峰| 曲阳县| 台中市| 庆阳市| 靖边县| 福贡县| 郧西县| 明光市| 柯坪县| 田阳县| 颍上县| 射洪县| 兴安盟| 营山县| 仁怀市| 鄯善县| 武陟县| 禄劝| 密云县| 喀喇沁旗| 郧西县| 大庆市| 柘荣县| 沙雅县| 普宁市| 建阳市| 临海市| 白玉县| 元江| 澄城县| 遵义市| 冷水江市| 蒙阴县|