Exemple d'utilisation de la fonction récursive php

黄舟
Libérer: 2023-03-17 11:40:01
original
1716 Les gens l'ont consulté

La fonction récursive PHP est un élément indispensable dans notre développement actuel. Pour les programmeurs, la fonction récursive PHP a une grande valeur d'utilisation et peut résoudre de nombreux problèmes. Aujourd'hui, nous allons vous la présenter. Voici utilisation. exemples de fonctions récursives PHP !

Cet article présente principalement des exemples d'utilisation de la récursion PHP (fonction récursive php), notamment l'obtention récursive de l'ID de rôle chaîne , l'obtention récursive du tableau d'informations de rôle en cascade et l'obtention de l'identifiant du parent. role Pour obtenir des informations sur les sous-rôles, les amis qui en ont besoin peuvent se référer à

//递归获得角色ID字符串
function explodeRole($roleObj, &$resultStr){
  if(0 < count($roleObj->childRoleObjArr)){
    foreach($roleObj->childRoleObjArr as $childRoleObj){
      if(&#39;&#39; == $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();
}
Copier après la connexion

Utilisation récursive des fonctions PHP

Une fonction qui s'appelle elle-même dans son corps de fonction est appelée 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
Copier après la connexion

Exemple 2 : L'utilisation de fonctions récursives et de boucles réalise un arrangement inverse de 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
Copier après la connexion

Les fonctions récursives peuvent souvent être remplacées par des boucles. Il est recommandé de les utiliser lorsque nous ne pouvons pas les remplacer par des boucles, car elles sont plus faciles à comprendre et moins sujettes. aux erreurs avec les boucles.

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);
}
}
Copier après la connexion

Cette liste de programmes implémente deux fonctions, qui peuvent toutes deux imprimer le contenu d'une chaîne dans l'ordre inverse
La fonction reversr_r est implémentée par récursion, tandis que la fonction reverse_i() est implémentée via des boucles

Résumé :

Cet article utilise deux exemples pour utiliser PHP récursif Les fonctions sont analysées. Les amis peuvent avoir une compréhension substantielle des fonctions récursives PHP grâce à cet article !

Recommandations associées :

Qu'est-ce que la fonction récursive PHP et un exemple d'explication simple

Comment utiliser efficacement la fonction récursive de PHP ? Exemples typiques de fonctions récursives php

Connaissez-vous les précautions d'utilisation du retour dans les fonctions récursives php

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!