Function in PHP – Definition und Aufruf von Funktionen

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: Definition mit und ohne Parameter

<?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 Functions: Funktionen mit Rückgabewerten

<?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 Call Function: Zugriff auf globale Variablen

<?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!

Letzte Posts aus unserem Forum

Wer kennt .....

Hallo erstmal wer kennt von euch einen WEbprogrammieren,desginer der mir eine Seite erstellen kann ,Communityportal sowas in der art wie ... » mehr

von NCWebmaster am Mittwoch, 7. Oktober 2009 00:32 in PHP - bisher 1 Antwort
Letzter Beitrag: Mittwoch, 7. Oktober 2009 13:26 von kalle

Hallo auch, da gibt es sicher viele die das machen würden, allerdings deutlich weniger die es auch tatsächlich machen könnten - noch einmal weniger ... » mehr

oh Mann

Hallo erstmals..... also ich kenn mich ja nicht so aus, aber ich denke die Menschheit fliegt auf den Mond, dann müsste es auch eine Lösung für mein ... » mehr

von Dummbazz am Dienstag, 24. Februar 2009 15:11 in PHP - bisher 2 Antworten
Letzter Beitrag: Mittwoch, 25. Februar 2009 11:48 von Dummbazz

Danke für die aufmunternde Worte... ... » mehr

counter auch ohne datenbank?

tach auch, ich habe nach einem besucherzähler gesucht, der auf meiner seite anzeigt, wieviele besucher sich dort aufhalten. allerdings habe ich ... » mehr

von marcel am Montag, 8. Dezember 2008 12:21 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 8. Dezember 2008 13:34 von alm

Hallo, sicher kann die Counter-Klasse so umgeschrieben werden, dass sie auch ohne Datenbankanbindung funktioniert. Allerdings würde das einer neuen ... » mehr

DAten speichern und abfragen

Hallo an Alle! Hoffe, dass ich hier im richtigen Forum bin. Vielleicht kann mir jemand einen Tip geben. Ich möchte auf meiner Webpage ein Formular ... » mehr

von muenchner am Samstag, 12. Juli 2008 18:31 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 14. Juli 2008 08:49 von alm

Hallo, ich bin mir nicht sicher, wie das jetzt gemeint ist! Geht es um die Frage: Sollen die Optionen des Forumlars (die einzelnen Checkboxen) in ... » mehr

Tutorials :: PHP & MySQL - Problem

Hi, zunächsteinmal danke für das Tutorial: ... » mehr

von migges am Montag, 2. Juni 2008 12:05 in PHP - bisher 3 Antworten
Letzter Beitrag: Dienstag, 3. Juni 2008 11:45 von alm

Das mit den Oder-Operatoren wundert mich ein wenig... Welchen Fehler hat der Interpreter an diesen Stellen ausgegeben? Ich habe bislang mit ... » mehr

¬ Tutorials



¬ Insolvenzrecht