4. Unterrichtsblock

Kursinhalte
PHP Switch-Anweisung
Die switch
-Anweisung wird verwendet, um verschiedene Aktionen basierend auf verschiedenen Bedingungen auszuführen. Die switch
-Anweisung zählt neben der if-else
-Anweisung daher zu den „bedingten Anweisungen“.
Hier wird die switch
-Anweisung verwendet, um einen von vielen auszuführenden Codeblöcken auszuwählen .
/*
SYNTAX
*/
switch (n) {
case fall1:
auszuführendes programm wenn n=fall1;
break;
case fall2:
auszuführendes programm wenn n=fall2;
break;
case fall3:
auszuführendes programm wenn n=fall3;
break;
...
default:
auszuführendes programm wenn keiner der o.g. fälle zutrifft;
}
Erklärung:
- Zuerst haben wir einen einzelnen Ausdruck n (meistens eine Variable), der einmal ausgewertet wird.
- Der Wert des Ausdrucks wird anschließend mit den Werten für jeden Fall (
case
) in der Struktur verglichen. - Wenn es zu einer Übereinstimmung kommt, wird der diesem Fall zugeordnete Codeblock ausgeführt.
- Die Option
break
wird verwendet, um zu verhindern, dass der Code automatisch in den nächsten Fall übergeht. Diedefault
-Anweisung wird verwendet, wenn keine Übereinstimmung gefunden wird.
<?php
/*
Beispiel beim Abgleich der Lieblingsfarbe
*/
$lieblingsfarbe = "rot";
switch ($lieblingsfarbe) {
case "rot":
echo "Die Lieblingsfarbe ist rot.";
break;
case "blau":
echo "Die Lieblingsfarbe ist blau.";
break;
case "grün":
echo "Die Lieblingsfarbe ist grün.";
break;
default:
echo "Die Lieblingsfarbe ist weder rot, blau oder grün.";
}
?>
Aufgaben Einfach
Aufgabe 1: Unterschiede
Trage die Unterschiede und Gemeinsamkeiten zur Switch-Anweisung von JavaScript zusammen und erkläre diese in eigenen Worten.
Aufgabe 2: O.g. Beispiel nachbauen:
Erstelle ein HTML-Formular in welchem über ein Dropdown-Formular eine Farbe ausgewählt werden kann und vergleiche die Eingabe nach Übermittlung durch eine switch-Anweisung. Nutze dabei o.g. Code-Beispiel.
Aufgaben Fortgeschritten
Aufgabe 1: Wochentag ausgeben
Ziel: Schreibe ein PHP-Skript, das anhand einer Zahl den entsprechenden Wochentag ausgibt.
- Erstelle eine PHP-Datei und schreibe ein Skript.
- Definiere eine Variable $tag mit einem Wert zwischen 1 und 7.
- Verwende eine switch/case-Anweisung, um den entsprechenden Wochentag (Montag bis Sonntag) für die Zahl auszugeben.
Aufgabe 2: Einfache Taschenrechner-Funktion
Ziel: Schreibe ein PHP-Skript, das eine einfache Taschenrechner-Funktion basierend auf einer Operation (Addition, Subtraktion, Multiplikation, Division) ausführt.
- Erstelle eine PHP-Datei und schreibe ein Skript.
- Definiere drei Variablen: $nummer1, $nummer2 und $operation.
- Verwende eine switch/case-Anweisung, um die entsprechende mathematische Operation basierend auf dem Wert von $operation auszuführen und das Ergebnis anzuzeigen.
PHP Funktionen
Die wahre Stärke von PHP liegt in seinen Funktionen. PHP hat mehr als 1000 eingebaute Funktionen und zusätzlich können eigene benutzerdefinierten Funktionen erstellt werden.
Eingebaute PHP-Funktionen
PHP hat über 1000 eingebaute Funktionen, die direkt innerhalb eines Skripts aufgerufen werden können, um eine bestimmte Aufgabe auszuführen. Einen Überblick zu allen eingebauten PHP-Funktionen gibt es auf folgender Seite: https://www.w3schools.com/php/php_ref_overview.asp
Benutzerdefinierte PHP-Funktionen
Neben den eingebauten PHP-Funktionen ist es möglich, eigene Funktionen zu erstellen.
- Eine Funktion ist ein Block von Anweisungen, die in einem Programm wiederholt verwendet werden können.
- Eine Funktion wird nicht automatisch ausgeführt, wenn eine Seite geladen wird.
- Eine Funktion benötigt einen Aufruf um ausgeführt zu werden.
Erstellung von benutzerdefinierten Funktionen
Eine benutzerdefinierte Funktionsdeklaration beginnt mit dem Wort function
:
Syntax
function funktionsName() {
auszuführendes programm;
}
Hinweis: Ein Funktionsname muss mit einem Buchstaben oder einem Unterstrich beginnen. Bei Funktionsnamen wird die Groß-/Kleinschreibung NICHT beachtet.
Tipp: Man gibt der Funktion einen Namen, der widerspiegelt, was die Funktion ausführen soll.
Im folgenden Beispiel wird eine Funktion mit dem Namen „begruessung()“ erstellt. Die öffnende geschweifte Klammer ( { ) gibt den Beginn des Funktionscodes an, und die schließende geschweifte Klammer ( } ) zeigt das Ende der Funktion an. Die Funktion gibt „Hallo Welt!“ aus. Um die Funktion aufzurufen, schreibt man einfach den Namen gefolgt von Klammern ():
<?php
function begruessung() {
echo "Hallo Welt!";
}
begruessung(); // Funktionsaufruf
?>
PHP-Funktionsargumente
Informationen können über Argumente an Funktionen übergeben werden. Ein Argument ist hierbei wie eine Variable.
Argumente werden nach dem Funktionsnamen innerhalb der Klammern angegeben. Man kann beliebig viele Argumente hinzufügen. Diese sind einfach durch ein Komma zu trennen
Das folgende Beispiel hat eine Funktion mit einem Argument ($fname)
. Beim Aufruf der Funktion familienName()
übergeben wir auch einen Namen (z. B. Müller), und der Name wird innerhalb der Funktion verwendet, die mehrere verschiedene Vornamen, aber einen gleichen Nachnamen ausgibt:
<?php
function familienName($fname) {
echo "$fname Maxi.<br>";
}
familienName("Müller");
familienName("Mayer");
familienName("Schmidt");
familienName("Bauer");
familienName("Metzger");
?>
Das folgende Beispiel hat eine Funktion mit zwei Argument ($fname und $jahr):
<?php
function familienName($fname, $jahr) {
echo "$fname Maxi. Geburtsjahr: $jahr <br>";
}
familienName("Müller", "1975");
familienName("Mayer", "1978");
familienName("Schmidt", "1983");
?>
PHP war bis PHP 8 eine lose typisierte Sprache
Im obigen Beispiel ist zu beachten, dass wir PHP nicht mitteilen mussten, welcher Datentyp die Variable ist.
PHP ordnet der Variablen abhängig von ihrem Wert automatisch einen Datentyp zu. Da die Datentypen nicht im engeren Sinne festgelegt werden, konnte man in PHP 7 Dinge wie das Hinzufügen einer Zeichenfolge zu einer Ganzzahl tun, ohne einen Fehler zu verursachen.
Seit PHP 8 ist dies jedoch nicht mehr so.
PHP strict
-Deklaration in PHP 7
In PHP 7 wurden die Typdeklarationen hinzugefügt. Dies ermöglicht es, den erwarteten Datentyp beim Deklarieren einer Funktion anzugeben. Durch das Hinzufügen der strict
Deklaration wird anschließend ein „Fatal Error“ ausgegeben, wenn der Datentyp nicht übereinstimmt.
Um zu prüfen, welche PHP Version verwendet wird, kann die Funktion phpversion()
verwendet werden.
<?php
// Im folgenden Beispiel wird versucht, sowohl eine Zahl als auch einen String an die Funktion zu senden, ohne strict:
function erhalteNummern(int $a, int $b) {
return $a + $b;
}
echo erhalteNummern(5, "5 Tage");
// Da Strict NICHT aktiviert ist, wird (bis zur Version PHP 8.0) "5 Tage" in int (5) geändert
// und es wird 10 zurückgegeben
// Seit PHP 8 funktioniert dies nicht mehr
// Prüfung der PHP Version:
echo 'Aktuelle PHP-Version: ' . phpversion() . ' <br>' ;
?>
Aufgabe
- Probiere o.g. Codebeispiel aus
- Recherchiere
PHP_EOL
– wofür wird es verwendet?
Aufgabe 1: Begrüßungsfunktion
Ziel: Schreibe eine Funktion, die einen Namen als Argument entgegennimmt und eine personalisierte Begrüßung ausgibt.
- Erstelle eine PHP-Datei und schreibe ein Skript.
- Definiere eine Funktion namens
begrüßung
, die ein Argument$name
entgegennimmt. - Die Funktion soll eine personalisierte Begrüßung ausgeben, z.B. „Hallo, [Name]!“.
- Rufe die Funktion mit verschiedenen Namen auf.
Aufgabe 2: Addiere zwei Zahlen
Ziel: Schreibe eine Funktion, die zwei Zahlen als Argumente entgegennimmt und ihre Summe zurückgibt.
- Erstelle eine PHP-Datei und schreibe ein Skript.
- Definiere eine Funktion namens
addiere
, die zwei Argumente$zahl1
und$zahl2
entgegennimmt. - Die Funktion soll die Summe der beiden Zahlen berechnen und zurückgeben.
- Rufe die Funktion mit verschiedenen Zahlenpaaren auf und gib die Ergebnisse aus.
Um strict
zu spezifizieren, muss declare(strict_types=1);
gesetzt werden. Dies muss in der allerersten Zeile der PHP-Datei stehen.
Im folgenden Beispiel versuchen wir, sowohl eine Zahl als auch einen String an die Funktion zu senden, aber hier haben wir die strict
Deklaration hinzugefügt:
<?php declare(strict_types=1); // strict Anforderung
function erhalteNummern(int $a, int $b) {
return $a + $b;
}
echo erhalteNummern(5, "5 Tage");
// Da Strict aktiviert ist und "5 Tage" keine Ganzzahl ist, wird ein Fehler ausgegeben
?>
Merke: Die
strict
-Deklaration erzwingt die beabsichtigte Verwendung von Dingen.
PHP-Standardargumentwert
Das folgende Beispiel zeigt, wie ein Standardparameter verwendet wird. Wenn wir die Funktion setzeHoehe()
ohne Argumente aufrufen, nimmt sie den Standardwert als Argument:
<?php
function setzeHoehe(int $minhoehe = 50) {
echo "Die Höhe ist: $minhoehe <br>";
}
setzeHoehe(350);
setzeHoehe(); // Verwendet den Standardwert 50
setzeHoehe(135);
setzeHoehe(80);
?>
PHP-Funktionen – Werte zurückgeben
Um den Wert einer Funktion zurück zu erhalten, verwendet man die return
-Anweisung:
<?php
function summe(int $x, int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . summe(5, 10) . "<br>";
echo "7 + 13 = " . summe(7, 13) . "<br>";
echo "2 + 4 = " . summe(2, 4);
?>
Aufgabe
- Probiere o.g. Codebeispiel aus
- Was kommt heraus, wenn
return
weggelassen wird?
Deklarationen von PHP-Rückgabetypen
PHP 7 unterstützt auch Typdeklarationen für die return
-Anweisung. Wie bei der Typdeklaration für Funktionsargumente wird durch die Aktivierung der strict
-Anforderung ein „Fatal Error“ bei einem Typkonflikt ausgelöst.
Um einen Typ für die Funktionsrückgabe zu deklarieren, fügt man beim Deklarieren der Funktion einen Doppelpunkt ( :
) und den Typ direkt vor der öffnenden geschweiften Klammer ( {
) hinzu.
Im folgenden Beispiel geben wir den Rückgabetyp für die Funktion an:
<?php
function erhalteNummern(float $a, float $b) : float {
return $a + $b;
}
echo erhalteNummern(1.2, 5.2);
?>
Man kann einen anderen Rückgabetyp als die Argumenttypen angeben, sollte aber sicherstellen, dass die Rückgabe der richtige Typ ist:
<?php
function erhalteNummern(float $a, float $b) : int {
return (int)($a + $b);
}
echo erhalteNummern(1.2, 5.2);
?>
Aufgabe
- Probiere beide o.g. Codebeispiele aus
- Was kommt heraus, wenn die
return-
Rückgabedeklarationen weggelassen, oder vertauscht werden?
Argumente per Referenz übergeben
In PHP werden Argumente normalerweise als Wert übergeben, was bedeutet, dass eine Kopie des Werts in der Funktion verwendet wird und die an die Funktion übergebene Variable nicht geändert werden kann.
Wenn ein Funktionsargument als Referenz übergeben wird, ändern Änderungen am Argument auch die übergebene Variable. Um ein Funktionsargument in eine Referenz umzuwandeln, wird der &
-Operator verwendet:
<?php
function addiere_fuenf(&$wert) { // Hier wird ein Referenz-Argument verwendet, um eine Variable zu aktualisieren
$wert += 5;
}
$nummer = 2;
addiere_fuenf($nummer);
echo $nummer;
?>
Aufgabe
Probiere o.g. Codes aus, um ein Gefühl hierfür zu bekommen.
Übungsaufgaben
1. Aufgabe
Erstelle eine Datei test.php und führe verschiedene Programme aus o.g. Beispielen durch. Verwende dabei verschiedene:
- Switch
- Funktionen
- Baue ein Programm, welches die PHP-eigene isset()-Funktion für Variablen verwendet und eine Anweisung durchführt, wenn eine bestimmte Variable existiert