Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Verwendungsbeispiele für rekursive PHP-Funktionen
In diesem Artikel werden hauptsächlich rekursive PHP--Anwendungsbeispiele (php-rekursive Funktion ) vorgestellt, einschließlich des rekursiven Abrufens der Rollen-ID Zeichenfolge und des rekursiven Abrufens von Kaskadenrollen-Informationsarrays Informationen zur untergeordneten Rolle können über die ID der übergeordneten Rolle aufgerufen werden.
//递归获得角色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(); }
Verwendung rekursiver PHP-Funktionen
Eine Funktion, die ihren eigenen Namen in ihrem Funktionskörper aufruft, ist ein 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: Verwendung rekursiver Funktionen und Schleifen zum Umkehren der Zeichenfolgenanordnung
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, Schleifen zu verwenden, wenn dies nicht möglich ist, da Schleifen einfacher zu verstehen und weniger fehleranfällig sind.
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); } }
In diesem Programmlisting sind zwei Funktionen implementiert. Beide Funktionen können den Inhalt der Zeichenfolge in umgekehrter Reihenfolge ausgeben wird durch Rekursion implementiert, und die Funktion reverse_i() wird durch Schleife
implementiertDas obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendungsbeispiele für rekursive PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!