In PHP bezieht sich eine rekursive Funktion auf eine selbstaufrufende Funktion, das heißt, die Funktion ruft sich direkt oder indirekt innerhalb des Funktionskörpers auf. Bei Verwendung einer rekursiven Funktion muss zur Bestimmung eine Beurteilungsbedingung zum Funktionskörper hinzugefügt werden ob es fortgesetzt werden muss, einen rekursiven Aufruf durchzuführen und den rekursiven Aufruf der Funktion zu beenden, wenn die Bedingung erfüllt ist.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Eine rekursive Funktion ist eine selbstaufrufende Funktion, das heißt, die Funktion ruft sich selbst direkt oder indirekt innerhalb des Funktionskörpers auf . Es ist zu beachten, dass bei Verwendung einer rekursiven Funktion normalerweise eine Beurteilungsbedingung an den Funktionskörper angehängt wird, um zu bestimmen, ob der rekursive Aufruf fortgesetzt werden muss. Wenn die Bedingung erfüllt ist, wird der rekursive Aufruf der Funktion beendet.
Der größte Vorteil rekursiver Funktionen besteht darin, dass sie komplexe und sich wiederholende Vorgänge im Programm vereinfachen und diese Funktion zur Ausführung einiger komplexerer Vorgänge nutzen können. Zum Beispiel Vorgänge wie Listen, dynamische Baummenüs und Verzeichnisdurchlauf. Die entsprechenden nichtrekursiven Funktionen sind zwar effizient, aber schwer zu programmieren und relativ unlesbar.
Rekursives Denken
Die Hauptidee der Rekursion besteht darin, ein relativ komplexes Problem (ursprüngliches Problem) in kleinere Probleme (Unterprobleme) umzuwandeln, die dem ursprünglichen Problem ähneln, um es zu lösen, und nacheinander zu warten 1 Sobald die kleinen Probleme gelöst sind, werden auch die großen Probleme irgendwann gelöst sein.
Die rekursive Methode benötigt nur eine kleine Anzahl von Programmen, um die mehrfach wiederholten Berechnungen zu beschreiben, die im Problemlösungsprozess erforderlich sind, wodurch die Menge an Programmcode erheblich reduziert wird. Natürlich sind rekursive Funktionen nicht perfekt und weisen auch bestimmte Mängel auf, nämlich dass rekursive Methodenfunktionen nicht effizient arbeiten.
Die maximale Anzahl der Rekursionsebenen in PHP ist nicht unbegrenzt. Dies hängt mit der Speicherbeschränkung des Programms zusammen, sodass ein Programm standardmäßig 128 MB verwenden kann Wenn der Speicher erschöpft ist, generiert das Programm einen schwerwiegenden Fehler und wird beendet. PHP7 erlaubt standardmäßig 256 MB Speicher.
Der von PHP maximal zulässige Speicher kann durch Ändern der Datei php.ini geändert werden, wie unten gezeigt:
; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit=256M
Rekursion in PHP
Um eine Rekursion zu erreichen, müssen die folgenden zwei Bedingungen erfüllt sein:
Das Unterproblem muss dasselbe wie das ursprüngliche Problem sein, jedoch einfacher.
kann sich nicht unbegrenzt aufrufen, es muss einen Exit geben, der die nicht-rekursive Situationsverarbeitung vereinfacht.
Beispiel 1: Verwenden Sie eine rekursive Funktion, um die Fakultät von n zu implementieren!
<?php header('content-type:text/html;charset=utf-8'); function factorial($num){ //确定递归函数的出口 if($num == 1){ return 1; }else{ return $num*factorial($num - 1); } } echo '15 的阶乘是:'.factorial(15); ?>
Die laufenden Ergebnisse sind wie folgt:
Beispiel 2: Berechnen Sie die Fibonacci-Folge.
Die Fibonacci-Sequenzfolge lautet wie folgt:
1, 1, 2, 3, 5, 8, 13, 21, 34,...
Der Implementierungscode lautet wie folgt:
<?php header('content-type:text/html;charset=utf-8'); function demo($num){ // if($num == 1 || $num == 2){ return 1; }else{ return demo($num - 1) + demo($num - 2); } } echo '数列第 10 位是:'.demo(10); ?>
Laufende Ergebnisse As folgt:
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet rekursive Funktion in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!