SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=139&group=26
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Funktionsargumente


Die Übergabe von Argumenten an die Funktion, die dann dort Parametern entsprechen, kann auf unterschiedliche Art und Weise erfolgen. Im einfachsten Fall geben Sie Variablennamen an:

function schreiben($spruch, $vorname) {
  echo "$spruch, $vorname";
}

Der Aufruf der Funktion kann nun erfolgen, indem Werte eingesetzt werden:

schreiben("Herzlich Willkommen", "Caroline");

Der Rückgabewert interessiert hier nicht, also wird auch kein return benötigt. Beim Aufruf können natürlich auch Variablen eingesetzt werden. Das folgende Beispiel entspricht der ersten Variante:

$vorname = "Caroline";
$spruch = "Herzlich Willkommen";

function schreiben($spruch, $vorname) {
  echo "$spruch, $vorname";
}
schreiben($spruch, $vorname);


Lokale und globale Variablen

Die Variablennamen können gleich sein, da Variablen innerhalb einer Funktion lokal sind und nicht im Konflikt mit den globalen Variablen stehen.

Beispiel

<?php
function schreiben($spruch, $vorname) {
  echo "$spruch, $vorname <br>";
  $spruch = "Neuer Spruch";
  $vorname = "Neuer Name";
}
$vorname = "Caroline";
$spruch = "Herzlich Willkommen";
schreiben($spruch, $vorname);
schreiben($spruch, $vorname);
?>

Ausgabe
Herzlich Willkommen, Caroline
Herzlich Willkommen, Caroline


Übergabe per Referenz

Die Veränderung der übergebenen Variablen kann aber manchmal erwünscht sein. So könnte eine Funktion sämtliche übergebenen Werte in $inhalt kursiv schreiben, beispielsweise für Zitate.
<?php
function schreibeZitat(&$inhalt) {
  $inhalt = "<i>$inhalt</i>";
}
$spruch = "Hallo Welt!";
echo "$spruch<br>";
schreibeZitat($spruch);
echo $spruch;
?>

Ausgabe
Hallo Welt!
Hallo Welt!

Der Name der Variablen spielt keine Rolle. Entscheidend ist die Kennzeichnung der Argumente mit &. In diesem Fall wird der globalen Variablen der neue Wert zugewiesen. Diese Vorgehensweise wird als Parameterübergabe durch Referenz bezeichnet (by reference). Der normale Weg ist die Übergabe von Werten (by value), Änderungen wirken sich dann nicht auf die Quelle aus.