PHP 4.3

8.4 Rückgabewerte

In den bisherigen Funktionen haben wir die echo-Funktion verwendet, um eine Ausgabe in der Funktion zu erzeugen. In der Praxis geben Funktionen aber eher selten ihre Bearbeitungsergebnisse direkt auf dem Bildschirm aus, sondern liefern, vergleichbar mit vordefinierten Funktionen von PHP, Werte zurück.

Die Anweisung zur Rückgabe eines Funktionswertes lautet return, gefolgt von einem Ausdruck, der zurückgeliefert werden soll. Bei diesem Ausdruck kann es sich um Werte jeden Datentyps handeln, also sowohl einfache Typen wie Zeichenketten und numerische Werte, als auch Arrays und Objekte.

Zunächst ein einfaches Beispiel:

Skriptbeispiel Funktion zur US-Dollar-Umrechnung
<?php

  function euro($dollar) {
    $kurs = $HTTP_GET_VARS["val"]; 
    //Dollarkurs muss in vorangestelltes Formular eingegeben werden
	
    return $dollar / $kurs;

  }

  for ($dollar = 1; $dollar <=10; $dollar++) {
    $eurowert = euro($dollar);
    echo $dollar . " Dollar sind " . $eurowert . " Euro<br>";
  }

?>


Browserausgabe (bei einem Dollarkurs von 1.1621 am 16.10.2003)
1 Dollar sind 0.860511143619 Euro
2 Dollar sind 1.72102228724 Euro
3 Dollar sind 2.58153343086 Euro
4 Dollar sind 3.44204457448 Euro
5 Dollar sind 4.3025557181 Euro
6 Dollar sind 5.16306686172 Euro
7 Dollar sind 6.02357800534 Euro
8 Dollar sind 6.88408914895 Euro
9 Dollar sind 7.74460029257 Euro
10 Dollar sind 8.60511143619 Euro

Im nächsten Beispiel stellen wir die Möglichkeit vor, Rückgabewerte einer Funktion direkt in if-Anweisungen einzubinden. Die Funktion prüft die syntaktische Richtigkeit einer E-Mailadresse und liefert als Ergebnis true oder false zurück.

Skriptbeispiel Rückgabewerte
<?php

  function check_email($mail) {
    $at_pos = strpos($mail, "@");
    $dot_pos = strrpos($mail, ".");

    if (strlen($mail) < 6 || $at_pos < 1 || ($dot_pos - $at_pos) < 2 || (strlen($mail) - $dot_pos) < 3) {
      $check = false;
    } else {
      $check = true;
    }
    return $check;
  }

  $my_email="info@teia.de";

  if (check_email($my_email)) {
    echo "Vielen Dank!";
  } else {
    echo "Die angegebene E-Mailadresse ist ungültig";
  }

?>

Browserausgabe
Vielen Dank!

Dieses zweite Beispiel macht noch einmal deutlich, dass der Wert der Variable $my_email nicht verändert, sondern nur an die Funktion übergeben wird. Die Mittlerrolle spielt dabei die Variable $mail, die als Parameter im Funktionskopf definiert wurde. Unabhängig davon, was mit $mail funktionsintern geschieht - die außerhalb der Funktion liegende Variable $my_email bleibt davon unangetastet.

Kommentare (0)

Ihr Kommentar

Name