CDS: Rekursion

Beitrag lesen

Hi an alle.

Bezüglich Rekursion:

Diese absolut simple rekursive Funktion macht mir jedoch Kopfzerbrechen, was die Verständlichkeit angeht:

  
<?php  
  function fak($n)  
    {  
        //Aufruf  
        echo "Eintritt mit $n<br>";  
            if ($n == 0)  
            {  
                return 1;  
            }  
            else  
            {  
                //echo "<br><br>";  
                $ergebnis = $n*fak($n-1);  
                //Rückspring  
                echo "Austritt mit $n: $ergebnis<br>";  
                return $ergebnis;  
            }  
    }  
  
    fak(5)  
?>

Das Ergebnis dieser Funktion ist folgendes:

  
Eintritt mit 5  
Eintritt mit 4  
Eintritt mit 3  
Eintritt mit 2  
Eintritt mit 1  
Eintritt mit 0  
Austritt mit 1: 1  
Austritt mit 2: 2  
Austritt mit 3: 6  
Austritt mit 4: 24  
Austritt mit 5: 120

Das mit dem "Einttritt" ist mir ja schon klar, da wird von 5 => 0 heruntergezählt, was durch den Teil

  
$ergebnis = $n*fak($n-1);  

geschieht.
Kann mir aber jemand bitte erklären, WO GENAU diese Funktion anfängt hoch zu zählen??
Was veranlasst diese Funktion nach "Eintritt mit 0", mit "Austritt mit 1" bis "Austritt mit 5" HOCH zu zählen?

Währe für jede hilfreiche Erklärung sehr dankbar :)