# 4.6.3 Funktionsaufrufe innerhalb einer Funktion

Wir verwenden jetzt zwei Funktionen, und die erste Funktion ruft die zweite Funktion auf (siehe Zeile 4).

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    <?php
    function writeStudent($name, $uni, $zip, $city)
    {
       echo "$name ist an der ";
       writeUni($uni, $zip, $city);
    }

    function writeUni($uni, $zip, $city)
    {
       echo "$uni, $zip, $city.<br>";
    }

    writeStudent("Ute", "HS EL", "26723", "Emden");

Ausgabe:
Ute ist an der HS EL, 26723, Emden.

## Rekursion

Eine Funktion kann sich auch selbst aufrufen. Hier ein Beispiel mit einer sinnvollen Rekursion, die eine Abbruchbedingung enthält:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    <?php
    function add($x)
    {
       echo "x startet mit: $x <br>";
       if ($x === 0) {
          return 0;
       }
       $result = add($x - 1) + $x;
       echo "x ist nun $x <br>";
       return $result;
    }

    $total = add(5);
    echo "<br>Das Gesamtergebnis ist $total";

Ausgabe:
x startet mit: 5
x startet mit: 4
x startet mit: 3
x startet mit: 2
x startet mit: 1
x startet mit: 0
x ist nun 1
x ist nun 2
x ist nun 3
x ist nun 4
x ist nun 5
Das Gesamtergebnis ist 15

Wichtig

Wenn Ihnen die Funktionsweise der Rekursion und die Rolle der `return`-Anweisungen nicht sofort klar ist, empfehle ich Ihnen, sich Zeit zu nehmen und das Verhalten Schritt für Schritt nachzuvollziehen. Verwenden Sie dazu Papier und Stift, um zu verstehen, warum die Ausgabe genau in dieser Reihenfolge erfolgt und wie das Programm zum Gesamtergebnis von 15 gelangt.