Maison >développement back-end >tutoriel php >Explication détaillée des exemples d'utilisation de fonctions récursives PHP
Cet article présente principalement des exemples d'utilisation récursifs de php (fonction récursive php ), y compris l'obtention récursive de l'ID de rôle chaîne et l'obtention récursive de rôles en cascade Tableau d'informations, obtenir informations sur le personnage enfant via l'identifiant du personnage parent, les amis dans le besoin peuvent se référer à
//递归获得角色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(); }
utilisation de la fonction récursive php
Une fonction appelle son propre nom dans son corps de fonction est un appel récursif . Ce type de fonction est appelé fonction récursive. Cela a généralement une grande valeur pratique pour les programmeurs et est souvent utilisé pour décomposer des problèmes complexes en situations simples et identiques, et cela à plusieurs reprises jusqu'à ce que le problème soit résolu.
La différence entre utiliser des fonctions récursives et ne pas utiliser de fonctions récursives
Exemple 1 : Utiliser des variables statiques
function test(){ static $dig=0; if($dig++<10){ echo $dig; test(); } } test();//12345678910
Exemple 2 : Utiliser des fonctions récursives et des boucles pour inverser la disposition des chaînes
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
Les fonctions récursives peuvent souvent être remplacées par des boucles. Il est recommandé d'utiliser des boucles lorsque nous ne le pouvons pas, car les boucles sont plus faciles à comprendre et moins sujettes aux erreurs.
Fonction récursive php PHP paie des fonctions récursives. Les fonctions récursives s'appellent elles-mêmes. Ces fonctions sont particulièrement adaptées à la navigation dans des structures de données dynamiques, telles que des arbres et des listes.
Presque aucune application Web ne nécessite l'utilisation de structures de données complexes
<?php function reversr_r($str) { if (strlen($str)>0) reverse_r(substr($str,1)); echo substr($str,0,1); return; } ?> <?php function reverse_i($str) { for($i=1;$i<=strlen($str);$i++) { echo substr($str,-$i,1); } }
Deux fonctions sont implémentées dans cette liste de programmes. Les deux fonctions peuvent imprimer le contenu d'une chaîne dans l'ordre inverse. est implémenté par récursion, et la fonction reverse_i() est implémentée via loop
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!