echo $begrüßung;
Eine Funktion kann nur einmal deklariert werden
function bla($i) {
echo $i;
}Aber aufgerufen werden kann sie beliebig oft
bla(42);
bla(8);
bla(15);Wo ich wieder bei meiner Frage wäre, kennt jemand eine möglichkeit wie ich dieses Problem lösen kann, ohne das ich alles mehrfach schreiben muss?
Genau dazu sind Funktionen da. Ich weiß nicht, wie ich es noch erklären soll. Vielleicht mit einem etwas anderen Beispiel:
function input($name, $value) {
$input = '<input type="text"';
$input .= ' name="' . $name . '"';
if (!empty($value))
$input .= ' value="' . $value . '"';
$input .= '>';
echo $input;
}
Aufgabe dieser Funktion ist, den HTML-Code eines Texteingabeelements zu erstellen. Sie bekommt zwei Parameter: den Namen des Elements und den Vorbelegungswert. (Damit ein bisschen mehr "Action" in die Funktion kommt wird letzterer nur dann eingefügt, wenn der übergebene Wert nicht leer ist.) $name und $value sind Platzhalter für diese beiden Parameter. Sie stehen nur innerhalb der Funktion zur Verfügung. Gibt es außerhalb der Funktion gleichlautende Variablen werden diese nicht beeinflusst. Auch können Variablen, die außerhalb einer Funktion existieren nicht einfach so innerhalb der Funktion angesprochen werden. (Da das sowieso kein guter Stil ist, erkläre ich an dieser Stelle nicht, wie das geht, sondern überlasse dies dem PHP-Handbuch.)
Diese Funktionsdeklaration steht ein Mal im Script. Wenn PHP an der Stelle vorbeikommt passiert erst einmal nichts, außer dass PHP nun weiß, dass es eine Funktion namens input gibt. An anderen Stellen des Scripts steht beispielsweise:
echo '<form action="...">';
input('vorname', 'Ulu');
input('nachname', '');
echo '</form>';
Zeile 1 und 4 sollten klar sein. Wenn PHP auf ein input() trifft, wird jedes Mal der Inhalt der Funktion ausgeführt. Die übergebenen Werte ('vorname', 'Ulu', usw.) werden beim Aufruf den Platzhaltern übergeben. Als Ausgabe des Scripts entsteht:
<form action="...">
<input type="text" name="vorname" value="Ulu">
<input type="text" name="nachname">
</form>
echo "$verabschiedung $name";
P.S. Nebensächlichkeiten wie Zeilenumbrüche habe ich weggelassen.