


Analyse von drei Möglichkeiten zur Implementierung einer rekursiven PHP-Funktion
Oben haben wir Ihnen die Verwendung der rekursiven PHP-Funktion vorgestellt. Ich glaube, dass Freunde ein gewisses Verständnis für die Verwendung der rekursiven PHP-Funktion haben Funktion. Drei Methoden! In diesem Artikel werden hauptsächlich die drei grundlegenden Methoden zur Implementierung der Rekursion in PHP vorgestellt, einschließlich der Verwendung von Referenzen als Parameter, der Verwendung globaler Variablen und der Verwendung statischer Variablen zur Implementierung der Rekursion. Außerdem werden relevante Beispiele beigefügt und schließlich eine Demonstration durchgeführt. , mit rekursiven Betriebsfähigkeiten in PHP, Freunde, die es brauchen, können darauf verweisen
Rekursive Funktion ist eine Art von Funktion, die wir häufig verwenden. Die grundlegendste Funktion besteht darin, dass die Funktion sich selbst aufruft, ihr jedoch vorangestellt werden muss
Bedingtes Urteil, andernfalls wird das Gespräch auf unbestimmte Zeit fortgesetzt. Mit welchen Methoden können rekursive Funktionen implementiert werden? In diesem Artikel werden drei grundlegende Möglichkeiten aufgeführt. Um es zu verstehen, ist ein gewisses Maß an Grundwissen erforderlich, einschließlich des Verständnisses globaler Variablen, Referenzen und statischer Variablen sowie des Verständnisses ihres Umfangs. Rekursive Funktionen sind auch eine gute Technik zur Lösung unendlicher Klassifizierungsebenen. Wenn Sie an einer unendlichen Klassifizierung interessiert sind, lesen Sie bitte PHP, um mithilfe rekursiver Funktionen eine unendliche Klassifizierung zu erreichen. Ich bin es gewohnt, komplexe Wahrheiten in Laienbegriffen zu erklären. Wenn Sie es wirklich nicht verstehen, schauen Sie bitte im Handbuch nach.
Referenzen als Parameter verwendenUnabhängig davon, ob Referenzen Parameter sind oder nicht, müssen wir zunächst verstehen, was eine Referenz ist. Eine Referenz bedeutet einfach, dass zwei Variablen mit unterschiedlichen Namen auf dieselbe Speicheradresse verweisen. Ursprünglich hatte jede Variable ihre eigene Speicheradresse und das Zuweisen und Löschen verlief auf eigene Weise. Okay, jetzt teilen sich die beiden Variablen eine Speicheradresse. $a=&$b; Was es tatsächlich bedeutet, ist, dass $a unabhängig von seiner ursprünglichen Speicheradresse denselben Raum mit $b teilen muss. Daher wirkt sich jede Änderung des gespeicherten Adresswerts auf beide Werte aus.
Funktionen erledigen ursprünglich ihre eigene Sache, auch wenn es sich um Funktionen mit demselben Namen handelt. Rekursive Funktionen berücksichtigen Referenzen als Parameter und werden zu einer Brücke, um den Datenaustausch zwischen zwei Funktionen zu bilden. Obwohl die beiden Funktionen scheinbar an unterschiedlichen Adressen arbeiten, arbeiten sie tatsächlich an derselben Speicheradresse.
Das obige Beispiel ist sehr einfach. Wenn die Bedingung wahr ist, wird durch die Übergabe der Referenz von result an die Funktion jede Rekursion generiert Das a wird zum Ergebnisarray result hinzugefügt. Daher lautet das in diesem Beispiel generierte $result-Arrayfunction test($a=0,&$result=array()){ $a++; if ($a<10) { $result[]=$a; test($a,$result); } echo $a; return $result; }
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 ) 。
Verwenden Sie globale Variablen zur Vervollständigung rekursiver Funktionen. Stellen Sie bitte sicher, dass Sie verstehen, was globale Variablen sind. Die innerhalb der Funktion deklarierte globale Variable ist lediglich eine Referenz auf die gleichnamige externe Variable. Der Gültigkeitsbereich der Variablen liegt weiterhin im Gültigkeitsbereich dieser Funktion. Wenn Sie die Werte dieser Variablen ändern, ändern sich natürlich auch die Werte externer Variablen mit demselben Namen. Aber sobald & verwendet wird, ist die Variable mit demselben Namen keine Referenz mit demselben Namen mehr. Es ist nicht erforderlich, eine so tiefe Ebene zu verstehen, um globale Variablen zum Implementieren rekursiver Funktionen zu verwenden. Sie können rekursive Funktionen auf natürliche Weise verstehen, indem Sie die ursprüngliche Ansicht globaler Variablen beibehalten.
function test($a=0,$result=array()){ global $result; $a++; if ($a<10) { $result[]=$a; test($a,$result); } return $result; }
Statische Variablen sehen wir oft in Klassen, und heute verwenden wir sie in rekursiven Funktionen. Denken Sie an die Rolle von Static: Initialisieren Sie die Variable nur beim ersten Aufruf der Funktion und behalten Sie den Variablenwert bei.
Zum Beispiel:
Was ist das Ausführungsergebnis dieses Codes? Ist es 00000? Auf keinen Fall. Es ist 01234. Erstens, wenn test() zum ersten Mal aufgerufen wird, initialisiert static $count. Nach jeder weiteren Ausführung wird der Wert von $count beibehalten und nicht mehr initialisiert, was dem direkten Ignorieren des Satzes static $count=0; entspricht.function test(){ static $count=0; echo $count; $count++; } test(); test(); test(); test(); test();
Daher kann man sich den Effekt der Anwendung von Statik auf eine rekursive Funktion vorstellen. Variablen, die als „Brücken“ zwischen rekursiven Funktionen verwendet werden müssen, werden statisch initialisiert, und der Wert der „Brückenvariablen“ bleibt für jede Rekursion erhalten.
function test($a=0){ static $result=array(); $a++; if ($a<10) { $result[]=$a; test($a); } return $result; }
Die sogenannte rekursive Funktion konzentriert sich darauf, wie mit dem Funktionsaufruf selbst umgegangen wird und wie sichergestellt werden kann, dass die erforderlichen Ergebnisse angemessen „übertragen“ werden können " zwischen Funktionen. Natürlich gibt es auch rekursive Funktionen, die keine Werteübertragung zwischen Funktionen erfordern, zum Beispiel:
Angesichts einer solchen Funktion müssen wir uns darüber keine Sorgen machen. Übrigens kann ein tiefes Verständnis der Variablenreferenzen einen großen Beitrag zur Lösung dieser Art von Problemen leisten.function test($a=0){ $a++; if ($a<10) { echo $a; test($a); } }
Abschließend möchte ich Ihnen eine Methode zur Implementierung von Rekursion und unendlicher Klassifizierung in PHP vorstellen. Die spezifische Implementierungsmethode lautet wie folgt:
<?php echo "<pre class="brush:php;toolbar:false">"; $area = array( array('id'=>1,'area'=>'北京','pid'=>0), array('id'=>2,'area'=>'广西','pid'=>0), array('id'=>3,'area'=>'广东','pid'=>0), array('id'=>4,'area'=>'福建','pid'=>0), array('id'=>11,'area'=>'朝阳区','pid'=>1), array('id'=>12,'area'=>'海淀区','pid'=>1), array('id'=>21,'area'=>'南宁市','pid'=>2), array('id'=>45,'area'=>'福州市','pid'=>4), array('id'=>113,'area'=>'亚运村','pid'=>11), array('id'=>115,'area'=>'奥运村','pid'=>11), array('id'=>234,'area'=>'武鸣县','pid'=>21) ); function t($arr,$pid=0,$lev=0){ static $list = array(); foreach($arr as $v){ if($v['pid']==$pid){ echo str_repeat(" ",$lev).$v['area']."<br />"; //这里输出,是为了看效果 $list[] = $v; t($arr,$v['id'],$lev+1); } } return $list; } $list = t($area); echo "<hr >"; print_r($list); ?>
Zusammenfassung : Drei Methoden implementieren rekursive PHP-Funktionen, die viele rekursive PHP-Operationsfähigkeiten erfordern. Ich hoffe, dass dies für Ihre Arbeit hilfreich ist!
Verwandte Empfehlungen: Beispiele für die Verwendung von rekursiven PHP-Funktionen Kennen Sie die Vorsichtsmaßnahmen für die Verwendung von Return in rekursiven PHP-Funktionen? Was ist eine rekursive PHP-Funktion und ein einfaches Beispiel zur Erklärung Wie nutzt man die rekursive PHP-Funktion effektiv? Typische Beispiele für rekursive PHP-Funktionen
Das obige ist der detaillierte Inhalt vonAnalyse von drei Möglichkeiten zur Implementierung einer rekursiven PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.
