07.02.19 2533 Views 4

credit: ©Gorodenkoff (stock.adobe.com)

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.

Falconbyte unterstüzen

Betrieb und Pflege von Falconbyte brauchen viel Zeit und Geld. Um dir auch weiterhin hochwertigen Content anbieten zu können, kannst du uns sehr gerne mit einem kleinen "Trinkgeld" unterstützen.

Thema in Kurzform

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

    Inhaltsverzeichnis

  1. Die erste eigene Funktion
  2. Parameter
  3. Rückgabewert
  4. Übungen

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 Parameter 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

Java lernen

text text

PHP Lernen

zur PHP

JavaScript lernen

move nove move

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen