Quakenet/#php Tutorial

Hinweis: Wenn sie diese Seite von einer externen URL aufgerufen haben achten sie darauf das alle Kapitel aufeinander aufbauen. Stellen sie daher sicher dass sie alle vorherigen Kapitel gelesen haben, da sie sonst relevante Informationen übersehen.

Funktionen

  1. Verwendung von Funktion
  2. Definieren von eigenen Funktionen
  3. Optionale Parameter
  4. Rückgabewert von Funktionen
  5. Dokumentation von eigenen Funktionen

1. Verwendung von Funktion

Neben Kontrollflußstrukturen und Variablen bestehen PHP-Skripte auch aus Funktionsaufrufen. Wenn gleicher Programmcode häufig ausgeführt wird wird dieser Programmcode in einer Funktion ausgelagert. Statt also jedesmal den gleichen Code zu haben ruft man an den entsprechenden Stellen nur noch die Funktion auf, die dann die eigentliche Arbeit verrichtet.

Das Verhalten einer Funktion wird durch deren Parameter beeinflusst. Eine Funktion kann beliebig viele Parameter besitzen, dies schließt keine Parameter genauso ein wie unendlich viele Parameter. Des Weiteren kann eine Funktion einen Wert zurückliefern. Dies ist auch die Standardverwendung einer Funktion, es werden Parameter übergeben und die Funktion liefert anhand dieser einen Wert zurück. Beispielsweise liefert die sin-Funktion den Sinuswert vom angegebenen Radian Wert zurück.

<?php
sin
(3.1415); // liefert float(9.26535896605E-5) zurück, also fast 0
?>

Diesen Wert sollte man entsprechend auch verwenden, entweder in einer Variablen speichern oder z.B. direkt ausgeben.

<?php
$var 
sin(3.1415);
echo 
sin(1.57079); // gibt 0.99999999998 aus
?>

2. Definieren von eigenen Funktionen

Früher oder später will man nicht nur die von PHP bereitgestellten Funktionen verwenden sonder auch eigene Funktionen definieren. Funktionsdefinitionen werden in PHP mit dem Schlüsselwort function eingeleitet.

<?php
function
?>

Danach folgt der eigentliche Name der Funktion. Der Name selbst unterliegt gängigen Regeln wie z.B. nicht mit Ziffern anfangen. Des Weiteren haben Funktionen die mit zwei Unterstrichen (__) anfangen besondere Funktionalität. Benutzen sie solche Funktionen nur wenn sie genau die Funktionalität wollen die im Handbuch beschrieben ist.

<?php
function meineFunktion
?>

Wie bei einem Funktionsaufruf folgt nun eine öffnende Klammer (. Nach der Klammer können nun Variablen für die Parameter angegeben werden. Mit der Anzahl der Variablen (mit Kommata getrennt) legt man somit die Anzahl der Parameter fest. Wenn man jedoch plant eine Funktion mit beliebig vielen Parametern zu definieren gibt man an dieser Stelle keine Parameter an sondern verwendet im Funktionsrumpf die Funktionen func_get_args, func_get_arg und func_num_args. Die Parameterliste wird danach mit der geschlossenen Klammer ) beendet.

<?php
function meineFunktion($param1$param2)
?>

Danach beginnt der Inhalt der Funktion mit einer geschweiften öffnenen Klammer {. Hier kann nun beliebiger PHP-Code stehen. Am Ende wird der Funktionsrumpf mit einer geschweiften schließenden Kammer } abgeschlossen.

<?php
function meineFunktion($param1$param2) {
    
// hier folgt nun
    // normaler php-code
}
?>

Nach typischen Programmierstil rückt man den Quellcode innerhalb der Funktion um 4 Leerzeichen ein. Somit ist erkennbar wo die Funktion beginnt (beim Schlüsselwort function) und wo sie endet (bei der schließenden Klammer }).

Innerhalb der Funktion können die Parametervariablen benutzt werden. Neben den Superglobalen Variablen sind sonst keine weiteren Variablen verfügbar. Hierbei spricht man auch vom Variable scope. Die Parametervariablen werden dann entsprechend mit den Werten beim Funktionsaufruf gefüllt. Wenn die Parameter beim Funktionsaufruf Variablen sind so werden deren Werte übergeben, jedoch nicht die Variable selbst. In erste Linie ist es somit nicht möglich Variablen zu verändern, die außerhalb der Funktion verwendet werden.

<?php
function meineFunktion() {
    echo 
$var;   // hilfe, wo ist $var definiert?
}
$var 'HTML-Code';
meineFunktion(); // wird nicht klappen, da in der Funktion nur Parametervariablen und
                 // superglobals vorhanden sind
?>

3. Optionale Parameter

In PHP ist es erlaubt Parameter zu definieren die man später bei einem Funktionsaufruf nicht benutzt. So ist es z.B. möglich eine Funktion mit nur einem Parameter aufzurufen obwohl die Funktion theoretisch 3 Parameter unterstützt. Um so eine Funktion zu definieren weist man den Parametern Standardwerte in der Parameterliste zu. Dies geschied indem man eine Zuweisung beim Parameter angibt. Wenn die Funktion mit einem Parameter aufgerufen wird wird dieser Wert für die Parametervariable benutzt. Wenn die Funktion ohne den Parameter aufgerufen wird so enthält die Parametervariable den angegebenen Standardwert.

<?php
function meineFunktion($x$test 'foobar') {
    echo 
'x hat den Wert: "'.$x.'" und test hat den Wert: "'.$test.'"'
}
meineFunktion(4'wort'); // gibt 4 und wort aus
meineFunktion(5);         // gibt 5 und foobar aus
meineFunktion();          // nicht möglich, da mindestens 1 Parameter erforderlich ist
meineFunktion(123);     // möglich, aber der dritte parameter geht verloren
?>

4. Rückgabewert von Funktionen

Obwohl man in Funktionen beliebigen PHP-Code verwenden, sowie auch echo, ist es für eine Funktion üblicher einen berechneten Wert zurückzuliefern. Dies wird in PHP mit dem Sprachkonstrukt return realisiert. Dort gibt man dann einen Wert oder eine Variable an, die man zurückgeben möchte.

<?php
function meineFunktion() {
    
mach_dies(); // wird noch ausgeführt
    
return 300;
    
mach_das();  // wird nicht ausgeführt, da die funktion verlassen/beendet wurde
}
echo 
meineFunktion(); // gibt 300 aus
?>

Mit return wird gleichzeitig die Funktion beendet. Dies kann an jeder Stelle geschehen, wenn dies Sinn ergibt. Bei der Berechnung des Sinus vom Wert 0 muss z.B. nicht groß gerechnet werden sondern dort kann mit einer Fallunterscheidung recht früh der Wert 0 zurückgeliefert werden.

Es ist auch möglich eine Funktion mit return zu beenden und dabei keinen Rückgabewert anzugeben. Dies ergibt natürlich nur dann Sinn wenn nicht erwartet wird das eine Funktion einen Rückgabewert hat.

<?php
function meineFunktion() {
    
// anderere code
    
return;
}
meineFunktion();        // klappt ohne probleme
$var meineFunktion(); // klappt auch, $var enthält dann den Wert NULL (ein spezieller Datentyp) 
?>

5. Dokumentation von eigenen Funktionen

Funktionen die von PHP bereitgestellt werden sind auf der offiziellen Homepage detailiert beschrieben. Bei eigens angelegten Funktionen fehlt entsprechend solch eine Dokumentation. Notfalls kann man über den Funktionsnamen die Funktionalität erraten. Bei komplizierteren Funkionen hofft man jedoch auf eine gute Dokumentation. Dazu eignen sie PHPDocs. Vor der eigentlichen Funktion fügt man ein PHPDoc-Kommentar, der die Funktion ausreichend beschreibt.

<?php
/**
 * Liefert eine Quadratzahl zurück.
 *
 * Dieser Funktion wird ein Parameter übergeben und liefert
 * die Quadratzahl von dieser Funktion zurück.
 *
 * @param x Der Wert von der man eine Quadratzahl haben möchte
 * @return Die Quadratzahl
 */
function quadrat($x) {
    return 
$x*$x;
}
?>

Der genaue Aufbau solcher PHPDoc-Kommentare liest man entsprechend auf der phpDocumentor Homepage.

Fragen zum Kapitel

Keine Fragen zum Kapitel vorhanden

Zurück zu Weiter zu
Copyright © bei den OPs von #php.de/QuakeNet Valid XHTML 1.0 Strict Valid CSS!