Jetzt anmelden...

Login
Passwort
Registrieren

PHP Tutorial #15

Benutzerdefinierte Funktionen in PHP

Wie Sie vordefinierte Funktionen in PHP einsetzen, wissen Sie bereits. Jetzt zeigen wir Ihnen, wie Sie eigene Funktionen schreiben.

Kommentare [0]

Stefan 07.02.2019

Infos zum Artikel

Kategorie PHP
Autor Stefan
Datum 07.02.2019

Thema in Kurzform

  • Neben dem bereits vordefinierten Funktionsarsenal von PHP müssen Sie auch eigene Funktionen schreiben können.
  • Beispiel für einne benutzerdefinierte Funktion:
    function meine_function(){
        echo "Hallo falconbyte!";
    }
    

Die erste eigene Funktion

Benutzerdefinierte Funktionen sind solche, die wir selbst schreiben (im Gegensatz zu den vordefinierten Funktionen) und haben zwei entscheidende Vorteile:

  • Wir ersparen uns doppelten Code: Gleiche Programmschritte müssen nur einmal durch die Funktion beschrieben werden. Danach können sie durch einen einfachen Funktionsaufruf immer wieder ausgeführt werden.
  • Modularisierung: Unsere Programme werden strukturierter, da wir sie in kleinere Bestandteile mit bestimmten Aufgaben (Funktionen) aufteilen können.

Um nun eine eigene Funktion in PHP zu schreiben, verwenden wir das Schlüsselwort function und folgende Syntax:

PHP benutzerdefinierte Funktion

Wir wollen nun nach diesem Muster eine erste Funktion programmieren. Sie soll - wenn aufgerufen - eine Reihe von zehn Sternchen-Zeichen (*) mit Zeilenumbruch (<br>) am Bildschirm ausgeben. Parameter brauchen wir hier zunächst noch nicht, sodass die runden Klammern leer bleiben:

function printZeichen(){
    echo "********** <br>";
}

Wir können unsere Funktion nun ganz einfach beliebig oft aufrufen:

printZeichen();
printZeichen();
printZeichen();

function printZeichen(){
    echo "********** <br>";
}

Wenn wir diesen Code ausführen, erhalten wir folgende Anzeige am Bildschirm:

**********
**********
**********

Ort der Funktionsdefinition

Im Wesentlichen gibt es zwei Möglichheiten, wo Sie Ihre Funktionen definieren können.

  • In derselben Datei: Wie in unserem Beispiel oben, können benutzerdefinierte Funktionen im gleichen Dokument definiert werden. Sinnvoll ist eine Implementierung entweder am Ende des Dokuments oder im head-Bereich der php-Datei.
  • In externer Datei: Wenn Sie benutzerdefinierte Funktionen in mehreren Programmen einsetzen wollen, sollten Sie die Funktionen extern in einer anderen Datei implementieren. Konventionell wird diese Datei functions.inc.php genannt. Die Einbindung erfolgt im Programm dann über eine include-Anweisung: include "functions.inc.php"; Wichtig: Die include-Anweisung muss vor dem Funktionsaufruf erfolgen.

Parameter

Häufig benötigen Funktionen Funktionsparameter. Was hat es damit auf sich?

Bei Parametern handelt es sich um Werte, die in eine Funktion "hineingegeben" werden. Die Funktion kann dann mit diesem Wert arbeiten.

Der Paramete wird im Funktionskopf definiert – und zwar innerhalb der runden Klammern. Unsere Funktion printZeichen() von oben hatte noch keine Parameter. Deshalb blieben die runden Klammern leer. Immer wenn wir printZeichen() aufgerufen haben, haben wir stets zehn Sternchen (*) angezeigt bekommen.

Wir wollen die Funktion nun so erweitern, dass die Anzahl der Sternchen beim Funktionsaufruf variabel festgelegt werden kann.

Hierzu benötigen wir eine Parameter-Variable. Wir nennen sie $menge:

function printZeichen($menge){
    for($i = 0; $i < $menge; $i++){
        echo "*";
        }
    echo "<br>";
}

Wir arbeiten innerhalb der Funktion mit einer Schleife. Den Wert, welcher der Funktion über die Parameter-Variable $menge übergeben wird, wird zur Steuerung der Schleifendurchläufe benutzt. Bei jedem Schleifendurchlauf wird mit echo ein Sternchen * ausgegeben. Dies geschieht solange, bis $i < $menge false ergibt.

Wenn wir nun die Funktion mit einem ganzzahligen Wert (Integer) aufrufen...

sternchen(20);

... sehen wir statt 10 nunmehr 20 Sternchen mit Zeilenumbruch.

Jedes Mal, wenn wir die Funktion aufrufen, müssen wir ihr in runden Klammern einen Wert in die Funktion "hineingeben". Dieser ganzzahlige Wert ist flexibel wählbar:

printZeichen(5);
printZeichen(15);
printZeichen(25);
printZeichen(15);
printZeichen(5);

*****
***************
*************************
***************
*****

Mehrere Parameter

Ein Parameter genügt oftmals nicht.

  • Mehrere Parameter werden in den runden Klammern der Funktionsdefinition kommasepariert nacheinander aufgeführt.

Beispielhaft sieht das für drei Parameter so aus:

function meine_function($parameter1, $parameter2, $parameter3){
    //Anweisungen
}

Modifizieren wir nun unsere Funktion printZeichen() um einen zusätzlichen Parameter. Mit diesem wollen wir das am Bildschirm angezeigt Zeichen variabel bestimmen. Neben dem Sternchen soll also jedes mögliche Zeichen angezeigt werden können:

function printZeichen($menge, $zeichen){
    for($i = 0; $i < $menge; $i++){
        echo $zeichen;
        }
    echo "br";
}

Wir müssen nun beim Funktionsaufruf zwei Werte angeben: Den Integer für die Anzahl der Zeichen und das gewünschte Zeichen selbst als String. Zum Beispiel:

printZeichen(4, "*");
printZeichen(6, "#");
printZeichen(8, "$");

****
######
$$$$$$$$

Rückgabewert

Funktionen können nach ihrem Aufruf einen Wert zurückliefern, etwa eine Ganzzahl (int), einen Wahrheitswert (boolean), eine Zeichenkette (String) oder was auch immer.

Hier ein Beispiel:

function addiere($z1, $z2){
    return $z1+$z2;
}

Die Funktion addiere() nimmt zwei Parameter-Werte entgehen und addiert sie miteinander. Das Ergebnis wird nun durch das Schlüssekwort return an das Programm zurückgeliefert.

Doch was bedeutet eigentlich "ein Wert wird zurückgeliefert"?

  • Zurückliefern eines Werts bedeutet, dass eine Information zwischen zwei Programmteilen weitergereicht wird. Ein Teil des Programms fordert durch den Funktionsaufruf eine Information an, mit der nun weitergearbeitet werden kann.

Konkret sieht das so aus:

$ergebnis = addiere(3, 7);

Die Funktion liefert den Wert 10 zurück. Wir nehmen diesen zurückgegebenen Wert auf und speichern ihn in einer Variable $ergebnis. Mit dieser Variable können wir im Programm nun weiterarbeiten.

Es ist auch möglich, den Wert direkt am Bildschirm anzeigen zu lassen:

echo addiere(3, 7);

Rufen wir die Funktion dagegen auf und "greifen" uns den zurückgelieferten Wert nicht in einer Variable oder geben ihn nicht mit echo am Bildschirm aus, ist der Wert verloren und "verpufft".

Übungen

einfach

Wie ruft man folgende Funktion auf?

function xyz($p){
    echo "Sie haben die Funktion mit folgendem Parameter-Wert aufgerufen " . $p;
}
Lösung ein-/ausblenden

mittel

Was wird mit folgendem Code am Bildschirm ausgegeben?

falke(5, 1, 3);

function falke($a, $b, $c){
    $d = ($a + $b) * $c;
    $e = false;
    if($d < 10){
        $e = false;
    }
    else{
    $e = true;
    }

    return $e;
}
Lösung ein-/ausblenden

schwer

Zeit für ein bisschen Nostalgie 🤖

Schreiben Sie eine PHP-Funktion namens setzeFigur(). Die Funktion soll auf dem Bildschirm eine bestimmte Zahl von Mario- bzw. Mega Man-Figuren (png-Grafikdateien) anzeigen.

Die Funktion hat zwei Parameter. Mit dem ersten Parameter wird festgelegt, welche der beiden Figuren erscheinen soll. Der zweite Parameter bestimmt, wie oft die gewählte Figur dann angezeigt wird.

Hier die beiden, schön pixeligen Grafiken (rechte Maustaste -> Bild speichern unter...):

Lösung ein-/ausblenden

Kommentar schreiben

Nur angemeldete und aktivierte Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Schleifen in PHP

Schleifenstrukturen gehören zu den wichtigsten Grundlagen in der Programmierung überhaupt.

Funktionen aufrufen

In PHP gibt es ein ganzes Arsenal an bereits vordefinierten Funktionen, die Sie benutzen können.

Operatoren einsetzen

Es gibt eine Vielzahl an Operatoren. Wir haben eine Übersicht erstellt

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen