Technikerschule
Nördlingen
Programmierung dynamischer Internetseiten
Startseite
Termine
Links
Einführung
Netzdiagnose
Webserver
HTML-Unterlagen
HTML-Praxis
Stylesheets
Javascript
WAMP-Installation
PHP-Lektionen
PHP-Übungen
Vorlagen
Kontakt

Eigene Funktionen

Es ist nicht immer sinnvoll, beim Programmieren das Rad neu zu erfinden. Mehrfach benötigte Programmteile schreibt man deshalb sinnvollerweise in eigene Funktionen, die aus dem Programmablauf heraus ausfgerufen werden.

Mit einer Parameterliste kann man Informationen an eine Funktion übergeben. Die Parameterliste ist eine kommagetrennte Liste von Variablen und/oder Konstanten.

Beispiel 1

function malnehmen($a,$b){
     $c=$a*$b;
     return $c;



}


echo malnehmen(7,9); // Zeigt die Zahl 63 an

Sie können das Ergebnis einer Funktion auch an eine Variable übergeben.

$ergebnis= malnehmen(7,9);
echo $ergebnis; // Zeigt die Zahl 63 an

PHP unterstützt die Weitergabe von Parametern als Werte (das ist der Standard, Beispiel 1), als Verweise (Beispiel 2), und als Vorgabewerte (Beispiel 3). Die Übergabe einer beliebigen Parameterzahl ist nicht möglich. Wenn zwei Parameter gefordert sind, müssen auch zwei Werte übergeben werden. Ein Ausweg kann bei Bedarf die Übergabe eines Arrays sein, wie das folgende Beispiel zeigt. In einem Formular sollen verschiede Produkte markiert werden können, in der Funktion werden sie angezeigt.

function anzeigen($produkte){
     for($i=0;$i<count($produkte);$i++){
        echo $produkt[$i]."<br>;

     }


}

Verweise als Parameter übergeben

Normalerweise werden den Funktionen Werte als Parameter übermittelt. Dabei kann es sich durchaus um Varariablen handeln, die vor dem Aufruf der Funktion im Hauptprogramm einen bestimmten Wert zugewiesen bekommen haben. Wenn man den Wert dieses Parameters innerhalb der Funktion ändert, bleibt der Parameter ausserhalb der Funktion unverändert.

Wenn die Funktion den Wert Ihrer Variable verändern soll, dann müssen Sie der Funktion Ihren Parameter als Verweis übergeben. Soll eine Funktion einen Parameter generell als Verweis behandeln, dann setzt man ein kaufmännisches Und (&) in der Funktionsdefinition vor den Parameternamen wie in diesem Beispiel aus dem PHP-Handbuch:

Beispiel 2

 

function fuege_etwas_anderes_an (&$string) {
    $string .= 'und nun zu etwas völlig anderem.';
}
$str = 'Dies ist ein String, ';
fuege_etwas_anderes_an ($str);
echo $str; // Ausgabe 'Dies ist ein String, und nun zu etwas völlig anderem.'

Wenn Sie eine Variable andererseits als Verweis an eine Funktion übergeben wollen, die dies nicht tut, können Sie das kaufmännische Und (&) auch beim Aufruf der Funktion verwenden:

 

function bla ($fasel) {
    $fasel .= ' und nun zu etwas völlig anderem.';
}
$str = 'Dies ist ein String, , ';
bla ($str);
echo $str;  // outputs 'Dies ist ein String, '
bla (&$str);
echo $str;  // outputs 'Dies ist ein String, und nun zu etwas völlig anderem.'

Vorgabewerte für Parameter

Um zu verhindern, dass mit leeren Werten gearbeitet wird, kann mit Vorgabewerten gearbeitet werden. Wird kein Wert übergeben, bekommt der Parameter den voreingestellten Wert.

Beispiel 3

 

function machkaffee ($typ = "Cappucino") {
    return "Ich mache eine Tasse $typ.\n";
}
echo machkaffee ();
echo machkaffee ("Espresso");

Die Ausgabe von diesem kleinen Skript ist:

 
Ich mache eine Tasse Cappucino.
Ich mache eine Tasse Espresso.

Der Vorgabewert muss eine Konstante sein, darf also (zum Beispiel) keine Variable oder Element einer Klasse sein.

Bitte beachten Sie, dass alle Vorgabewerte rechts von den Nicht-Vorgabeparametern stehen sollten; - sonst wird es nicht funktionieren. Betrachten Sie folgendes Beispiel:

 

function mach_joghurt ($typ = "rechtsdrehendes", $geschmack) {
    return "Mache einen Becher $typ $geschmack-joghurt.\n";
}
 
echo mach_joghurt ("Brombeer");   // arbeitet nicht wie erwartet

Die Ausgabe dieses Beispiels ist:

 
Warning: Missing argument 2 in call to makeyogurt() in 
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Mache einen Becher Brombeer-joghurt.

Nun vergleichen Sie bitte oberes Beispiel mit folgendem:

 

function mach_joghurt ($geschmack, $typ = "rechtsdrehendes") {
    return "Mache einen Becher $typ $geschmack-joghurt.\n";
}
 
echo mach_jogurt ("Brombeer");   // arbeitet wie erwartet.

... und jetzt ist die Ausgabe:

 
Mache einen Becher rechtsdrehendes Brombeer-Joghurt.

 
Zurück   Home   Nächste