Mit Funktionen arbeiten

Je nach Verwendungszweck einer Funktion kann eine Funktion mit oder ohne Parameter bzw. mit oder ohne Rückgabewert erforderlich sein.

Funktionen ohne Parameter

Bei einer Funktion ohne Parameter werden bei jedem Aufruf dieselben Anweisungen ausgeführt.

Beispiel: funktionen1.php

<?php	
 
 function Text()
 { echo "<p>Hallo Welt!</p>";
 }
 
 function Linie()
 { echo	"<p><hr></p>";
 }
 
 Text();
 Linie();	
 Text();	
 Linie();
 
?>

  Anzeige des Beispielprogramms "funktinen1.php"

Funktionen mit einem oder mehreren Parametern

Bei einer Funktion mit einem oder mehreren Parametern werden bei jedem Aufruf der Funktion in Abhängigkeit von den Parametern ähnliche Aufgaben ausgeführt. Hierbei kann ein Parameter eine Konstante oder eine Variable sein.
Wenn Sie eine Funktion mit mehreren Parametern aufrufen, müssen die Anzahl und die Reihenfolge der Parameter übereinstimmen.

Beispiel: funktionen2.php

Im folgenden Skript werden die Preise pro kg mithilfe einer Funktion mit einem Parameter berechnet.

<?php
 
 function Preis($menge)
 {$betrag = 1.2*$menge;
  echo "Der Preis von $menge kg ist: $betrag<br>";
 }
 
 Preis(2);
 Preis(5);
 Preis(10);
 $einkaufsmenge=20;
 Preis($einkaufsmenge);
?>

Die Funktion wird dreimal aufgerufen. Der übergebene Parameter (der Wert in der Klammer) ist bei jedem Aufruf ein anderer. Der Wert in der Klammer wird der Variablen übergeben. Mithilfe der Variablen wird beim Aufruf der Funktion die Variable berechnet und am Bildschirm ausgegeben.

  Anzeige des Beispielprogramms "funktionen2.php"

Beispiel: funktionen3.php

Wird eine Funktion mit mehreren Parametern aufgerufen, wird der erste Wert an den ersten Parameter, der zweite Wert an den zweiten Parameter usw. übergeben.

<?php	
 
 function Preis($sorte,$preis,$menge)
 {$betrag = $preis * $menge;	
  echo "Der Preis von $menge kg $sorte ist: $betrag<br>";
 }
 
 Preis(Jonagold,1.5,5);	
 Preis(Gala,1.65,10);	
 Preis(Elstar,2.00,4);	
 
?>

Die Funktion wurde mit 3 Parametern versehen: .
Beim Aufruf der Funktion werden durch Kommata getrennt drei Parameter übergeben.

  Anzeige des Beispielprogramms "funktinen3.php"

Veränderung von Parametern innerhalb einer Funktion

Wenn Sie eine Variable als Parameter an eine Funktion übergeben, dann erhält die Funktion eine Kopie der übergebenen Variablen. Die Übergabe der Parameter als Kopie wird auch als call-by-value bezeichnet. Um den Wert einer übergebenen Variablen zu ändern, verändern Sie nur ihre lokale Kopie. Eine Veränderung der Kopie hat keinerlei Rückwirkung auf das Original.

Manchmal ist aber eine Veränderung der übergebenen Variablen erwünscht, beispielsweise um den Preis einer Bestellung abhängig zu machen von der vorgegebenen Menge. Um dies zu erreichen, übergeben Sie den Parameter als Referenz auf das Original. Sie übergeben also nicht, wie bei dem call-by-value-Verfahren, den Inhalt bzw. den Wert einer Variablen, sondern einen Verweis auf die Variable. Diese Vorgehensweise wird call-by-reference genannt. Eine Veränderung hat, anders als bei der Übergabe als Kopie, Rückwirkung auf das Original. Eine Referenz auf das Original erhalten Sie, indem Sie vor den Variablennamen ein setzen, z. B. .

Beispiel: byreference.php

<?php
 
 function Preis($sorte, &$preis, $menge)
 {if ($menge > 10) 
  {$preis = 1;
  }
  $betrag = $preis * $menge; 
  echo "Der Preis von $menge kg $sorte ist: $betrag EUR <br>";
 }
 
 $sorte = Elstar; 
 $preis = 2; 
 $menge = 8; 
 Preis($sorte, &$preis, $menge);
 
 $sorte = Elstar; 
 $preis = 2; 
 $menge = 15; 
 Preis($sorte, &$preis, $menge);
?>

Funktionen mit Rückgabewerten

Wenn Sie innerhalb einer Funktion ein Ergebnis ermitteln und dies an den Aufrufer zurückliefern möchten, verwenden Sie die return-Anweisung.
Allerdings ist hier zu beachten, dass eine return-Anweisung nicht nur den Rückgabewert festlegt, sondern auch die Ausführung der Funktion sofort beendet. Alle Anweisungen nach einer return-Anweisung werden nicht mehr ausgeführt, und der vorhandene Rückgabewert wird an das Programm ausgegeben.

Beispiel: funktionen4.php

<?php
 function Summe ($zahll, $zahl2)
 {$ergebnis = $zahll + $zahl2; 
  return $ergebnis;
 }
 
 $summel = Summe(10,20);
 echo "Summe1: $summel<br>";
 $zahl3 = 0.11;
 $summe2 = Summe (19,$zahl3);
 echo "Summe2: $summe2<br>";
?>

PHP kann nur einen Wert mit return() zurückgeben. Wenn Sie mehrer Werte aus einer Funktion zurückgeben möchten, können Sie diese Werte in einem Array zusammenfassen.

Um Variablen die Elemente des zurückgelieferten Arrays zuzuweisen, verwenden Sie die list()-Anweisung.

<?php
 
function zahlen()
{$ret = array(2,4,6);
 return $ret;
}
 
list($var1,$var2,$var3) = zahlen();
echo "Die zurückgelieferten Variablen sind: $var1, $var2, $var3";
?>