Wie die meisten Programmiersprachen unterstützt auch PHP die Definition von benutzerdefinierten Funktionen. Hierdurch kann der Entwickler häufig genutzte Script-Abschnitte in eine Funktion auslagern, die sich – ebenso wie die im Umfang von PHP enthaltenen, vordefinierten Funktionen – aufrufen lässt. Beachten Sie, dass die Definition von Funktionen im Code unter PHP 4 – anders als bei PHP 3 – nicht mehr zwingend vor deren Aufruf erfolgen muss. Unter PHP 3 musste die Funktionsdefinition im Quellcode immer vor einem Aufruf dieser Funktion stehen. Zum Thema Funktionen beachten Sie bitte auch unsere Beispiele auf Funktionen unter JavaScript.
Funktionen können sowohl mit als auch ohne entgegennahme von Parametern definiert werden. Einzelne Parameter werden dabei stets durch Kommata voneinander getrennt. Benötigt eine Funktion keine Parameter, so wird der Funktionskopf einfach ohne diese definiert. Dies bedeutet allerdings nicht, dass beim Aufruf der Funktion grundsätzlich keine Parameter angegeben werden können. Näheres hierzu und auch zur Nutzung von Default-Parametern erfahren Sie auf den folgenden Seiten.
Ob eine Funktion einen Rückgabewert liefert oder nicht hängt davon ab, ob dies durch den Aufruf von return im Körper der Funktion realisiert wurde. Auch wenn eine Funktion lediglich einen einzigen Rückgabewert liefern kann, ist es durch entsprechende Implementierung möglich komplexe Datenstrukturen per Return zurückzugeben. Denkbar ist beispielsweise das Zusammenstellen von Rückgabewerten in einem Array oder eine Rückgabe in Form der Instanz eines Objektes, welches den Zugriff auf seine Eigenschaften ermöglicht. Ein solches Objekt wird mittels Definition einer Klasse (class) umgesetzt.
<?php // Funktion mit Namen ohne, die keine Parameter erwartet function ohne () { // Ausgabe eines Strings echo 'Ich erwarte bei einem Aufruf keine Parameter-Werte!<br>'; } // Zuvor definierte Funktion aufrufen ohne (); // Folgende Funktion erwartet zwei Werte als Parameter, die innerhalb // der Funktion unter den Namen $parameter1 und $parameter2 abrufbar sind. function mit ($parameter1, $parameter2) { echo 'Und ich erwarte zwei Parameter!<br>' . 'Der Zugriff erfolgt über die Variablennamen $parameter1 und $parameter2.<br>' . 'Inhalt der angegebenen Parameter: ' . $parameter1 . ' und ' . $parameter2 . '<br>'; } // Aufruf von mit, wobei zwei Werte (ein String und ein Zahlenwert) übergeben werden // Die hier angegebenen Werte können auch durch Variablen ersetzt werden, wobei diese // stellvertretend für ihren Inhalt stehen. Z.B. durch den Aufruf von mit ($var1, $var2); mit ('p1', 5); ?>
Ich erwarte bei einem Aufruf keine Parameter-Werte!
Und ich erwarte zwei Parameter!
Der Zugriff erfolgt äber die Variablennamen $parameter1 und $parameter2.
Inhalt der angegebenen Parameter: p1 und 5
<?php // Funktion ohne Parameter und mit Rückgabewert function rechne () { // Zwei fixe Werte addieren und das Ergebnis der Operation // per return zurückliefern return 1 + 1; } // Funktionsaufruf $ergebnis = rechne (); // und Ausgabe des Ergebnisses echo 'Ergebnis: ' . $ergebnis . '<br>'; // Zwei Parameter, die Zahlenwerte enthalten werden addiert function addiere ($wert1, $wert2) { // Wie bei der letzten Funktion, mit dem Unterschied, dass die // zu addierenden Werte in den Parametervariablen abgelegt sind // und für die Addition ausgelesen werden. // Alternativ kann auch eine lokale Variable zur Speicherung von // Zwischenergebnissen genutzt werden return $wert1 + $wert2; } // Zwei Variablen initialisieren, die als Summanden verwendet werden $summand1 = 17; $summand2 = 4; // Funktion zur Berechnung der Summe aufrufen und dann das Ergebnis anzeigen $ergebnis = addiere ($summand1, $summand2); echo $summand1 . ' + ' . $summand2 . ' = ' . $ergebnis . '<br>'; // Funktion, welche mehrere Werte in Form einer Array-Struktur liefert function structReturn ($farbe, $bezeichnung, $typ) { // Array aus den Parametern erstellen und als Rückgabewert liefern return array ('Farbe' => $farbe, 'Produkt' => $bezeichnung, 'Typ' => $typ); } // Ausgabe der als Return-Value gelieferten Datenstruktur echo 'Werteliste als Array:'; print_r (structReturn ('gelb', 'Tomate', 'Beere')); ?>
Ergebnis: 2
17 + 4 = 21
Werteliste als Array:Array
(
[Farbe] => gelb
[Produkt] => Tomate
[Typ] => Beere
)
<?php // Initialisierung einer globalen Variable $gvar = 'Ich bin sichtbar!'; // Funktion ohne Parameter mit Zugriff auf eine ausgewählte globale Variable function globalerZugriff () { // Globale Variablen, auf deren Inhalt innerhalb der Funktion zugegriffen // werden soll, müssen zuvor unter Angabe ihres Namens in der Funktion per // global bekannt gemacht werden. global $gvar; echo 'Inhalt der globalen Variable: ' . $gvar . '<br>'; } // Aufruf der Funktion zur Demonstration globalerZugriff (); ?>
Inhalt der globalen Variable: Ich bin sichtbar!
Hallo Zusammen, Am 20./21. Mai findet in Hamburg die erste Developer Conference 2011 statt. Wie der Name bereits verrät, handelt die Konferenz rund ... » mehr
von devcon-hamburg am Dienstag, 12. April 2011 16:50 in PHP - noch nicht beantwortetHallo zusammen, ich habe ein kleines Problem: Ich brauche bei der Entwicklung eines Kontaktformulares für eine Website eine bedingte Weiterleitung ... » mehr
von scatha am Donnerstag, 10. März 2011 01:12 in PHP - noch nicht beantwortetMein vorhaben ist recht simpel aber ich bin php noob (hoffe das entschuldigt es nen bissl xD) und hab kp wie ichs anfangen soll. Und zwar möchte ich ... » mehr
von HeathenMan am Dienstag, 1. Februar 2011 22:57 in PHP - bisher 1 AntwortHallo,
am einfachsten und kompaktesten kann man das mit einem regulären Ausdruck machen. Einfach mal nach der Funktion preg_match_all suchen und den ... » mehr
Hallo, die Bildergalerie mit php und js ist super, jedoch möchte ich gern zu meinen Bildern verschiedene Bemerkungen machen und zwar untereinander, ... » mehr
von Sylma am Mittwoch, 26. Januar 2011 01:13 in PHP - bisher 1 AntwortHallo,
ich nehme an, dass \n im Beschreibungstext nicht funktioniert aber versuchen kann man es. Ansonsten: Schon mal mit einer UTF-Sequenz ... » mehr
Hallo alle miteinander, ich hoffe, dass mit hier jemand helfen kann. Ich habe mir hier von der Seite die Bildergalerie mit JS und PHP ... » mehr
von Saga am Dienstag, 28. Dezember 2010 09:57 in PHP - bisher 6 AntwortenHallo Alex,
die Warnung ist zwar jetzt durch das isset weg, aber die Daten werden immer noch nicht übergeben. (Nachdem ich durch das isset die ... » mehr
¬ Menu
¬ Gratis Download
¬ Tutorials
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp

PHP kurz & gut
Weitere PHP Bücher finden Sie unter PHP Literatur