Dieser Artikel
public function digui($i) { if($i=='1'){ echo "*" ; echo "<br>"; return ; }else{ $this->digui($i-1); for($j=1;$j<=$i;$j++){ echo "*" ; } echo "<br>"; } } 调用 $this->digui(3); 结果 * ** *** function digui2($n){ echo $n." "; if($n>0){ $this-> digui2($n-1); }else{ echo "<-->"; } echo $n." "; }
ruft $this->digui2(3);
Ergebnis
3 2 1 0 <--> auf ; 0 1 3 Um die Operation zu zerlegen, denken wir:
Beim Ausführen der Funktion one(3) muss, genau wie bei der Funktion test(), zuerst 3 ausgegeben werden, und dann wird die Funktion two(2) aufgerufen 🎜>Beachten Sie, dass das Folgende zu diesem Zeitpunkt noch nicht ausgegeben wurde.Fahren Sie fort, führen Sie die Funktion zwei(2) aus, geben Sie 2 aus und rufen Sie die Funktion drei(1) auf. Ebenso ist keine Zeit für die Ausgabe Folgendes 2.
Führen Sie three(1) aus, geben Sie 1 direkt aus und rufen Sie keine anderen Funktionen mehr auf. Zu diesem Zeitpunkt fragen wir uns, ob die Funktion two() noch nicht ausgeführt wurde. Okay, dann führen Sie sie aus Der unvollendete Teil der Funktion two () wird wie folgt ausgegeben: 2. Beginnen Sie dann mit der Ausführung des unvollendeten Teils der Funktion one (), dh geben Sie Folgendes aus: 3. Zu diesem Zeitpunkt , alle Funktionen wurden ausgeführt.
Dann ist das Ausgabeergebnis:
<?php function one($num){ echo $num; two($num-1); echo $num; } function two($num){ echo $num; three($num-1); echo $num; } function three($num){ echo $num; } one(3); ?>
Verwandte Empfehlungen:
Detaillierte Erklärung der rekursiven PHP-Funktion
Erklärung zum Aufruf rekursiver PHP-Funktionen
Analyse von drei Möglichkeiten zur Implementierung rekursiver PHP-Funktionen
Das obige ist der detaillierte Inhalt vonBeispielanalyse einer rekursiven PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!