Funktion

Aus php bar
(Weitergeleitet von function)
Wechseln zu: Navigation, Suche

Definition

Eine Funktion (engl. subroutine, function) oder eine Prozedur (engl. procedure) sind Anweisungsblöcke (engl. subprogram oder statement block), bzw. eine in einem Block zusammengefasste Abfolge von Befehlen / Anweisungen als Teil eines Programmes.

Funktionen und Prozeduren werden einmal definiert und können dann von überall aus aufgerufen werden.

siehe auch: Wikipedia:Funktion

Prozedur

Eine Prozedur hat im Gegensatz zur Funktion keinen Rückgabewert. Die Ergebnisse können daher nicht weiterverarbeitet werden. Es fehlt somit die return Anweisung am Ende. Ansonsten unterscheiden sich Prozedur und Funktion nicht.

1 span class="st0">'H:i:s' );
2 }
3 
4 Uhrzeit();


15:14:33

siehe auch: Wikipedia:Prozedur

Rückgabewerte

Funktionen geben ihre Ergebnisse immer mit der return Anweisung zurück. Daher können die Ergebnisse weiterverarbeitet werden.

1 span class="st0">'H:i:s'// das selbe wie
2 


15:14:33
15:14:33

Rückgabe als Referenz

1 span class="st0">'H:i:s' );  // WICHTIG: $uhrzeit hier muss dem &$uhrzeit namen entsprechen!
2 //waere auch folgendes moeglich:
3 $uhrzeit = Uhrzeit($temp); //der name ausserhalb der funktion ist also beliebig waehlbar
4 
ACHTUNG: Referenzen laufen langsam aus. Manche Provider stellen die Referenzmoeglichkeit
default auf NO ein. man sollte bestehende Referenz-Funktion aus Sicherheitsgruenden
langsam umstellen.

--Ifeelhorst 09:51, 10. Mai 2006 (CEST)

Parameter

Funktionen können mit Parametern aufgerufen werden, z. B.

1 span class="st0">'H:i:s'


15:14:33
15:15:33

siehe auch: Wikipedia:Parameter

Standardwerte

Parameter einer Funktion können Standardwerte haben, ihre Angabe beim Funktionsaufruf ist dann optional.

1 span class="st0">'H:i:s'


00:00:00
15:14:33
15:15:33

Übergabe als Referenz

Bei der Übergabe von Parametern wird die übergebene Variable immer kopiert, das kostet Zeit und Speicher und die Funktion arbeitet mit dieser Kopie. Durch Verwendung eines '&' (kaufmännisches Und) übergibt man nicht den Inhalt der Variable (call by value) sondern eine Referenz auf die Variable (call by reference), dabei entfällt das Kopieren der Variable, was vor allem bei großen Arrays oder langen Zeichenketten von Vorteil sein kann.

1 span class="st0">'H:i:s'


15:14:33

Wenn man allerdings sicherstellen möchte, dass die Funktion die Ausgangsvariable nicht verändert, sollte man die Variable nicht per Referenz übergeben.

Man kann sich so auch die Rückgabe der Variable sparen, wenn die übergebene Variable geändert zurückgegeben werden soll.

1 


0
1
2

Ab PHP 5 werden Objekte immer als Referenz übergeben.

siehe auch: Wikipedia:Parameterübergabe

Variablen

Innerhalb einer Funktion sind nur die Variablen bekannt die

1 // normale Variable
2 'ausserhalb definiert''ausserhalb definiert''ausserhalb definiert';
3 
4 // superglobale Variable
5 'meine_variable'] = 'superglobale Variable'// referenz auf externe Variable setzen
6 'Parameter-Variable           : '"\n"'Superglobale-Variable        : ''meine_variable'] . "\n"'externe Variable             : '"\n"'externe Variable mit global  : '"\n"'externe Variable mit $GLOBAL : ''var_c'] . "\n";
7 
8     // ueberschreiben der Variableninhalte
9 'durch Funktion ueberschrieben''durch Funktion ueberschrieben''durch Funktion ueberschrieben''parameter''Variable a ausserhalb: '"\n"'Variable b ausserhalb: '"\n"'Variable c ausserhalb: '"\n";


Parameter-Variable           : parameter
Superglobale-Variable        : superglobale Variable
externe Variable             : Notice: undefined Variable
externe Variable mit global  : ausserhalb definiert
externe Variable mit $GLOBAL : ausserhalb definiert

Variable a ausserhalb: ausserhalb definiert
Variable b ausserhalb: durch Funktion ueberschrieben
Variable c ausserhalb: durch Funktion ueberschrieben

statische Variablen

1 


1
2
3

Siehe auch