Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Verwendung einer rekursiven PHP-Funktion

Beispiel für die Verwendung einer rekursiven PHP-Funktion

黄舟
黄舟Original
2017-11-13 09:25:121719Durchsuche

Die rekursive PHP-Funktion ist ein unverzichtbarer Bestandteil unserer tatsächlichen Entwicklung. Für Programmierer hat die rekursive PHP-Funktion einen hohen Nutzen und kann viele Probleme lösen. Hier sind Verwendung Beispiele für rekursive PHP-Funktionen!

In diesem Artikel werden hauptsächlich Beispiele für die Verwendung der PHP-Rekursion (rekursive PHP-Funktion) vorgestellt, einschließlich des rekursiven Abrufens der Rollen-ID Zeichenfolge , des rekursiven Abrufens des Kaskadenrolleninformationsarrays und des Abrufens der übergeordneten ID Rolle Informationen zu Unterrollen finden Freunde, die diese benötigen, unter

//递归获得角色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();
}

PHPs rekursive Funktionsverwendung

Eine Funktion, die sich selbst innerhalb ihres Funktionskörpers aufruft, wird a genannt rekursiver Aufruf. Diese Art von Funktion wird als rekursive Funktion bezeichnet. Dies hat normalerweise einen hohen praktischen Wert für Programmierer und wird häufig verwendet, um komplexe Probleme in einfache und identische Situationen zu zerlegen und dies wiederholt zu tun, bis das Problem gelöst ist.

Der Unterschied zwischen der Verwendung rekursiver Funktionen und der Nichtverwendung rekursiver Funktionen

Beispiel 1: Verwendung statischer Variablen


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

Beispiel 2: Die Verwendung von Rekursionsfunktionen und Schleifen realisiert die umgekehrte Anordnung von Zeichenfolgen

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

Rekursive Funktionen können häufig durch Schleifen ersetzt werden. Es wird empfohlen, sie zu verwenden, wenn wir sie nicht durch Schleifen ersetzen können, da dies einfacher zu verstehen und weniger anfällig ist zu Fehlern mit Schleifen.

php rekursive Funktion PHP bezahlt rekursive Funktionen, die sich selbst aufrufen. Diese Funktionen eignen sich besonders zum Durchsuchen dynamischer Datenstrukturen wie Bäume und Listen.
Fast keine Webanwendungen erfordern die Verwendung komplexer Datenstrukturen

<?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);
}
}

Diese Programmauflistung implementiert zwei Funktionen, die beide den Inhalt einer Zeichenfolge in umgekehrter Reihenfolge drucken können
Funktion reversr_r ist implementiert durch Rekursion, während die Funktion reverse_i() durch Schleifen implementiert wird

Zusammenfassung:

Dieser Artikel verwendet zwei Beispiele für die rekursive Verwendung von PHP Durch diesen Artikel können Freunde ein umfassendes Verständnis der rekursiven PHP-Funktionen erlangen!

Verwandte Empfehlungen:

Was ist die rekursive PHP-Funktion und einfache Beispielerklärung

Wie nutzt man die rekursive PHP-Funktion effektiv? Typische Beispiele für rekursive PHP-Funktionen

Kennen Sie die Vorsichtsmaßnahmen für die Verwendung von Return in rekursiven PHP-Funktionen

?

Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung einer rekursiven PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn