Im ersten Tutorial habe ich dir gezeigt, wie du unter PHP ganz einfach etwas ausgeben kannst.

Da ich nun gezielt auf die objektorientierte Programmierung (wozu auch PHP gehört) vorbereiten will, mache ich an dieser Stelle direkt weiter mit Funktionen. In diese Funktionen kommt dann unser Skript.


Funktionen dienen dazu, wiederkehrende Abläufe auszulagern, so dass das gleiche Skript nicht wiederholt werden muss.
Beim Programmieren kommen Funktionen für gewöhnlich innerhalb von Klassen vor. Klassen werde ich allerdings erst im nächsten Tutorial ansprechen, so dass wir nun Funktionen einfach so in den Editor schreiben.

Funktionen werden unter PHP folgendermaßen definiert:

function ausgeben() {

}

Mithilfe von function geben wir an, dass es sich um eine Funktion handelt. Direkt gefolgt von dem Namen der Funktion, den wir frei wählen können. In die Klammern setzen wir dann später unsere verschiedenen Parameter. Ein Parameter ist ein Platzhalter für einen später übergebenen Wert. Würde also in der Klammer eine Variable stehen, würde unsere Methode später eine Eingabe erwarten – dazu kommt gleich ein Beispiel.

Alles, was nun hingegen in die geschweiften Klammern kommt, ist der eigentliche Ablauf, der später beim Aufruf der Funktion gemacht wird.

Wir können uns also nun eine Funktion schreiben, die so aussieht:

function ausgeben($zeichen) {
echo "Du hast das Zeichen ". $zeichen ." eingegeben.";
}

An dieser Stelle geben wir den Parameter der Funktion ohne weitere Verarbeitung weiter. Natürlich könnte man nun den Parameter weiter verarbeiten um am Ende etwas anderes ausgeben.

Da wir nun innerhalb unserer Funktion eine Verarbeitung durchführen wollen, schreiben wir eine Funktion, die eine if-else-Bedingung enthält. Diese Bedingung prüft, ob ein gewisser Fall eintritt und handelt entsprechend der Antwort.
Das könnte dann so aussehen:

function ausgeben($zeichen) {
 if($zeichen == "Test") {
  echo "Du hast das Wort Test eingegeben.";
 }
 else {
  echo "Dein Zeichen war ". $zeichen;
 }
}

Oben definieren wir wie gewohnt die Funktion mit Parameter $zeichen. Innerhalb der Funktion wird nun überprüft, ob der Parameter den String „Test“ enthält. Sollte dies der Fall sein, wird der Satz Du hast das Wort Test eingegeben. ausgegeben. Ansonsten erscheint der Text Dein Zeichen war

Auch lesenswert:  SEO - Warum es nichts für Neulinge ist

Womöglich erscheint dir das nun viel auf einmal, jedoch ist die if-else-Bedingung sehr einfach, weshalb ich sie direkt bei den Funktionen einbaue. Innerhalb von Funktionen wird man diese auch sehr oft brauchen.

Kommen wir nun abschließend zu sprechen auf den Aufruf der Funktion. Darüber haben wir uns bis hier her noch keinerlei Gedanken gemacht.

Eine Funktion in PHP rufst du ganz einfach über ihren Namen:

ausgeben("Test");

Hier wird die Funktion, die wir vorher definiert haben aufgerufen und ihr der Wert „Test“ übergeben. Anstatt dem Wort „Test“ – welches direkt in den Parameter ($zeichen) gesetzt wird – könnten wir auch eine Variable übergeben.
Wichtig bei dieser Funktion, die wir nun geschrieben haben ist, dass PHP die Eigenschaft case sensitive besitzt. Das bedeutet, dass PHP zwischen Groß- und Kleinschreibung unterscheidet. Würde man nun also „test“ anstatt „Test“ übergeben, wäre die Bedingung nicht erfüllt und man springt im Skript direkt in den else-Zweig.

Damit du das vielleicht besser verstehst, kannst du das direkt in einer eigenen Methode ausprobieren. Hierbei kannst du die Methode mit verschiedenen Werten rufen und dir das Ergebnis ausgeben lassen.


Kommen wir nun zum Schluss noch zu Funktionen mit Rückgabewerten. Es ist nämlich möglich, dass eine Funktion nicht direkt selbst etwas ausgibt, sondern nur einen Wert zurückliefert. Damit können wir auf verschiedenen Seiten die Funktion nutzen aber die Ausgabe jedes Mal neu formatieren.

Eine Funktion mit Rückgabewert wird exakt gleich geschrieben, wie oben bereits geschehen. Ich nehme als Beispiel also unsere letzte Funktion und schreibe sie direkt um zu einer Funktion, die einen Wert zurück liefert:

function ausgeben($zeichen) {
 if($zeichen == "Test") {
  return "Du hast das Wort Test eingegeben.";
 }
 else {
  return "Dein Zeichen war ". $zeichen;
 }
}

Wie man nun erkennen kann, sieht die Funktion auf den ersten Blick exakt gleich aus. Lediglich das echo fiel weg und wurde durch ein return ersetzt. Das bedeutet, dass an dieser Stelle nichts ausgegeben wird, sondern der Wert zurückgeliefert wird. Und zwar wird der Wert an die Stelle zurückgeliefert, wo die Funktion aufgerufen wurde.

Auch lesenswert:  Apache von http 1.1 auf http2 umstellen

Diesen Wert kann man nun direkt ausgeben oder wieder in einer Variable speichern. Beide Möglichkeiten sehen dann so aus:

$wert = ausgeben("Test");
echo ausgeben("Test");

In der ersten Zeile wird der Rückgabewert in der Variable $wert gespeichert, in der zweiten Zeile hingegen ohne zu speichern direkt ausgegeben.

Wie man die Funktion anwendet ist je nach Fall unterschiedlich. Möchte man den Rückgabewert später nochmal weiterverarbeiten macht es Sinn den Wert zu speichern, so dass man die Funktion nicht ständig rufen muss. Bei größeren Skripten könnte dadurch nämlich eine Zeitverzögerung entstehen.
Möchte man jedoch nur eine Ausgabe entsprechend des Parameters machen, so kann man den Rückgabewert direkt ausgeben.


Du hast hier nun eine kurze Einführung in Funktionen erhalten und ich hoffe, dass dies verständlich für dich war.

Im Grunde ist es nichts anderes wie dein erstes Skript, nur dass du das in eine Funktion packst, welche du dann aufrufen musst. Würdest du die Funktion nicht rufen, wäre die Seite komplett leer.

Im nächsten Tutorial packen wir dann die Klassen an, welche die Funktionen als Methoden beinhalten. Hierfür solltest du allerdings die Funktionen verstanden haben und bei bedarf verstärkt üben.
Die Skripte müssen nicht kompliziert sein, jedoch solltest du wissen, wie man eine Funktion definiert und nutzt.

Viel Spaß beim Üben


Aufgabe zum zweiten Tutorial: phpTut02

Kategorien: Web

Lukas

Hi, mein Name ist Lukas. Seit 2016 blogge ich auf Hobbyblogging über unterschiedliche Themen des Alltags. Schwerpunkt dabei ist das Thema Smart Home, speziell mit der Open Source Software OpenHAB. Neben dem Bloggen absolviere ich derzeit mein Master-Studium im Fachbereich Wirtschaftsinformatik und arbeite als Werkstudent im Software Engineering.

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.