3. Unterrichtsblock

PHP Operatoren

Operatoren werden verwendet, um Operationen an Variablen und Werten auszuführen.

PHP teilt die Operatoren in folgende Gruppen ein:

  • Rechenzeichen
  • Zuweisungsoperatoren
  • Vergleichsoperatoren
  • Inkrement/Dekrement-Operatoren
  • Logische Operatoren
  • String-Operatoren
  • Array-Operatoren
  • Bedingte Zuweisungsoperatoren

Arithmetische PHP-Operatoren

Die arithmetischen Operatoren von PHP werden mit numerischen Werten verwendet, um allgemeine arithmetische Operationen wie Addition, Subtraktion, Multiplikation usw.

OperatorNameBeispielErgebnis
+Addition$x + $ySumme von $x und $y
Subtraction$x – $yDifferenz von $x und $y
*Multiplication$x * $yProdikt von $x und $y
/Division$x / $yQuotient von $x und $y
%Rest$x % $yRest von $x geteilt durch $y
**Potenzierung$x ** $yErgebnis von $x hoch $y

Aufgabe

Probiere o.g. Codebeispiele aus, um ein Gefühl dafür zu bekommen.

PHP-Zuweisungsoperatoren

Die PHP-Zuweisungsoperatoren werden mit numerischen Werten verwendet, um einen Wert in eine Variable zu schreiben.

Der grundlegende Zuweisungsoperator in PHP ist „=“. Das bedeutet, dass der linke Operand auf den Wert des rechten Zuweisungsausdrucks gesetzt wird.

ZuweisungGleich wie…Beschreibung
x = yx = yDer linke Operand wird auf den Wert des rechten Ausdrucks gesetzt
x += yx = x + yAddition
x -= yx = x – ySubtraktion
x *= yx = x * yMultiplikation
x /= yx = x / yDivision
x %= yx = x % yRest

PHP-Vergleichsoperatoren

Die PHP-Vergleichsoperatoren werden verwendet, um zwei Werte (Zahl oder Zeichenfolge) zu vergleichen:

OperatorNameBeispielErgebnis
==Gleich$x == $yGibt „true“ aus, wenn $x gleich $y ist
===Identisch$x === $yGibt „true“ aus, wenn $x gleich $y ist und beide Werte denselben Typ haben
!=Nicht gleich$x != $yGibt „true“ aus, wenn $x nicht gleich $y ist
<>Nicht gleich$x <> $yGibt „true“ aus, wenn $x nicht gleich $y ist
!==Nicht identisch$x !== $yGibt „true“ aus, wenn $x nicht gleich $y ist, oder beide Werte nicht vom gleichen Typ sind
>Größer als$x > $yGibt „true“ aus, wenn $x größer als $y ist
<Kleiner als$x < $yGibt „true“ aus, wenn $x kleiner als $y ist
>=Größer als, oder gleich$x >= $yGibt „true“ aus, wenn $x gleich, oder größer als $y ist
<=Kleiner als, oder gleich$x <= $yGibt „true“ aus, wenn $x gleich, oder kleiner als $y ist
<=>Raumschiff$x <=> $yGibt eine ganze Zahl zurück, die kleiner, gleich oder größer als Null ist, je nachdem, ob $x kleiner, gleich oder größer als $y ist. Eingeführt in PHP 7.

PHP-Inkrement-/Dekrement-Operatoren

Die PHP-Inkrementoperatoren werden verwendet, um den Wert einer Variablen zu erhöhen. Die PHP-Dekrementoperatoren werden verwendet, um den Wert einer Variablen zu verkleinern.

OperatorNameBeschreibung
++$xVorinkrementErhöht $x um den Wert eins und gibt anschließend $x zurück
$x++NachinkrementGibt $x zurück und erhöht $x anschließend um den Wert eins
– -$xVordekrementVerkleinert $x um den Wert eins und gibt anschließend $x zurück
$x- –NachdekrementGibt $x zurück und verringert $x anschließend um den Wert eins

Aufgabe

Probiere o.g. Codebeispiele aus, um ein Gefühl dafür zu bekommen.

Logische PHP-Operatoren

Die logischen PHP-Operatoren werden verwendet, um bedingte Anweisungen zu kombinieren.

OperatorNameBeispielErgebnis
andAnd$x and $yWahr, wenn beide Werte $x und $y wahr sind
orOr$x or $yWahr, wenn entweder $x oder $y wahr sind
xorXor$x xor $yWahr, wenn entweder $x oder $y, aber nicht beide wahr sind
&&And$x && $yWahr, wenn beide Werte $x und $y wahr sind
||Or$x || $yWahr, wenn entweder $x oder $y wahr sind
!Not!$xWahr, wenn $x nicht wahr ist

PHP-String-Operatoren

PHP hat zwei Operatoren, die speziell für Strings entwickelt wurden.

OperatorNameExampleResult
.Verkettung$txt1 . $txt2Verkettung von $txt1 und $txt2
.=Verkettungszuweisung$txt1 .= $txt2Hängt $txt2 an $txt1 an (Ausgabe erfordert nur noch $txt1)

PHP-Array-Operatoren

Die PHP-Array-Operatoren werden verwendet, um Arrays zu vergleichen.

OperatorNameBeispielErgebnis
==Gleich$x == $yGibt wahr zurück, wenn $x und $y die gleichen Schlüssel/Wert-Paare haben
===Identisch$x === $yGibt wahr zurück, wenn $x und $y die gleichen Schlüssel/Wert-Paare in der gleichen Reihenfolge und vom gleichen Typ haben
!=Nicht gleich$x != $yGibt „true“ aus, wenn $x nicht gleich $y ist
<>Nicht gleich$x <> $yGibt „true“ aus, wenn $x nicht gleich $y ist
!==Nicht identisch$x !== $yGibt „true“ aus, wenn $x nicht gleich $y ist
+Zusammenführen$x + $yFührt $x und $y zusammen

Bedingte PHP-Zuweisungsoperatoren

Die bedingten Zuweisungsoperatoren von PHP werden verwendet, um einen Wert in Abhängigkeit von Bedingungen festzulegen:

OperatorNameBeispielErgebnis
?:Ternär$x = ausdr1 ? ausdr2 : ausdr3Gibt den Wert von $x aus.
Der Wert von $x ist ausdr2 wenn ausdr1 = TRUE.
Der Wert von $x ist ausdr3 wenn ausdr1 = FALSE
??Keine Koaleszenz$x = ausdr1 ?? ausdr2Gibt den Wert von $x aus.
Der Wert von $x ist ausdr1 wenn ausdr1 existiert und nicht NULL ist.
Wenn ausdr1 nicht existiert, oder NULL ist, dann ist ausdr2 der Wert von $x.

Eingeführt in PHP 7

Aufgabe

Probiere o.g. Codebeispiele aus, um ein Gefühl dafür zu bekommen.

PHP Konstanten

Konstanten sind sogenannte „Bezeichner“ von Werten und verhalten sich wie Variablen, außer dass sie, sobald sie einmal definiert wurden, nicht mehr geändert oder undefiniert werden können.

Visuelle Unterscheidung zu Variablen: Ein gültiger Konstantenname beginnt mit einem Buchstaben oder Unterstrich (kein $-Zeichen vor dem Konstantennamen).

Hinweis: Im Gegensatz zu Variablen sind Konstanten automatisch global im gesamten Skript.

Erstellen von PHP-Konstanten

Um eine Konstante zu erstellen, verwendet man die define()Funktion.

Syntax

define(name, value, case-insensitive)

Parameter:

  • name: Gibt den Namen der Konstante an
  • value: Gibt den Wert der Konstante an

Erstellen einer Konstante mit einem Namen, bei dem die Groß-/Kleinschreibung beachtet wird :

// Seit PHP 8
// Erstellen einer Konstante mit einem Namen, bei dem die Groß-/Kleinschreibung beachtet wird:
<?php
  define("BEGRUESSUNG", "Hallo Leute!");
  echo BEGRUESSUNG;
?>


// Für PHP 7 noch gültig
// Erstellen einer Konstante mit einem Namen ohne Berücksichtigung der Groß-/Kleinschreibung:
<?php
  define("BEGRUESSUNG", "Hallo Leute!", true);
  echo begruessung;
?>

/* Seit PHP 8 können Variablen nicht mehr case-insensitive gesetzt werden:
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in C:\xampp\htdocs\3-unterrichtsstunde.php on line 25
*/

Aufgabe

Anweisungen:

  1. Konstante definieren:
    • Erstelle eine PHP-Datei mit dem Namen berechnung.php.
    • Definiere in dieser Datei eine Konstante namens UMSATZSTEUER, die den aktuellen Umsatzsteuersatz von 19% als Dezimalzahl (0.19) darstellt.
  2. Rechenaufgabe durchführen:
    • Definiere eine Variable nettopreis und weise ihr einen Wert von 50 Euro zu.
    • Berechne den Bruttoverkaufspreis, indem du nettopreis mit UMSATZSTEUER multiplizierst und das Ergebnis zum nettopreis addierst.
    • Speichere das Ergebnis in einer Variable namens bruttopreis.
  3. Ergebnis ausgeben:
    • Gib den berechneten bruttopreis mit einer echo-Anweisung aus. Formatiere die Ausgabe so, dass sie aussagekräftig ist, z.B. „Der Bruttoverkaufspreis beträgt: EUR X.XX“.

PHP Array-Konstanten

Seit PHP7 kann man mit der define()Funktion eine Array-Konstante erstellen.

// Erstellung einer Array-Konstante:

<?php
  define("mehlspeisen", [
  "Kaiserschmarrn",
  "Pfannenkuchen",
  "Dampfnudeln"
]);
echo mehlspeisen[0];
?>

Konstanten sind global

Konstanten sind automatisch global und können im gesamten Skript verwendet werden.

// Dieses Beispiel verwendet eine Konstante innerhalb einer Funktion, auch wenn sie außerhalb der Funktion definiert ist:

<?php
  define("BEGRUESSUNG", "Hallo Leute!");
  
  function meinTest() {
    echo BEGRUESSUNG;
  }

  meinTest();
?>

Aufgabe

Probiere o.g. Codes aus, um ein Gefühl hierfür zu bekommen.

PHP Mathematik

PHP verfügt über eine Reihe von mathematischen Funktionen, mit denen man mathematische Aufgaben mit Zahlen ausführen kann.

PHP pi()-Funktion

Die pi()Funktion gibt den Wert von PI zurück:

<?php
  echo(pi()); // Ausgabe: 3.1415926535898
?>

PHP-Funktionen min() und max()

Die Funktionen min()und max()können verwendet werden, um den niedrigsten oder höchsten Wert in einer Liste von Argumenten zu finden:

<?php
  echo(min(0, 150, 30, 20, -8, -200));  // Ausgabe ?
  echo(max(0, 150, 30, 20, -8, -200));  // Ausgabe ?
?>

Aufgabe

Probiere o.g. Codes aus, um ein Gefühl hierfür zu bekommen.

PHP abs()-Funktion

Die abs()Funktion gibt den absoluten (positiven) Wert einer Zahl zurück:

<?php
  echo(abs(-6.7));  // Ausgabe ?
?>

PHP-Funktion sqrt()

Die sqrt()Funktion (englisch square root) gibt die Quadratwurzel einer Zahl zurück:

<?php
  echo(sqrt(64));  // Ausgabe ?
?>

PHP round()-Funktion

Die round()Funktion rundet eine Kommazahl auf die nächste ganze Zahl:

<?php
  echo(round(0.60));  // Ausgabe ?
  echo(round(0.49));  // Ausgabe ?
?>

Zufällige Zahlen

Die rand()Funktion generiert eine randomisierte Zufallszahl:

<?php
  echo(rand()); // Ausgabe ?
?>

Um mehr Kontrolle über die Zufallszahl zu erhalten, können Sie die optionalen min- und max- Parameter hinzufügen, um die niedrigste Ganzzahl und die höchste zurückzugebende Ganzzahl anzugeben.

Wenn beispielsweise eine zufällige Ganzzahl zwischen 10 und 100 (einschließlich) erzeugt werden soll, verwendet man rand(10, 100):

<?php
  echo(rand(10, 100)); // Ausgabe ?
?>

Aufgabe

Probiere o.g. Beispiele aus, um ein Gefühl hierfür zu bekommen.

Vollständige PHP-Mathematik-Referenz

  • abs — Absolutwert bzw. Betrag
  • acos — Arkuskosinus
  • acosh — Areakosinus hyperbolikus
  • asin — Arkussinus
  • asinh — Areasinus hyperbolikus
  • atan2 — Arkustangens-Variante mit zwei Parametern
  • atan — Arkustangens
  • atanh — Areatangens hyperbolikus
  • base_convert — Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um
  • bindec — Wandelt von binär zu dezimal um
  • ceil — Rundet Brüche auf
  • cos — Kosinus
  • cosh — Kosinus hyperbolikus
  • decbin — Wandelt von dezimal zu binär um
  • dechex — Wandelt von dezimal zu hexadezimal um
  • decoct — Wandelt von dezimal zu oktal um
  • deg2rad — Rechnet einen Winkel von Grad in Bogenmaß um
  • exp — Berechnet den Exponenten von e
  • expm1 — Berechnet exp(Zahl) – 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • fdiv — Dividiert zwei Zahlen gemäß IEEE 754
  • floor — Rundet Brüche ab
  • fmod — Rest einer Gleitkommadivision (Modulus)
  • hexdec — Wandelt von hexadezimal zu dezimal um
  • hypot — Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks
  • intdiv — Integer-Division
  • is_finite — Prüft, ob ein Wert eine gültige endliche Zahl ist
  • is_infinite — Prüft, ob ein Wert unendlich ist
  • is_nan — Prüft, ob ein Wert keine Zahl ist
  • log10 — Dekadischer Logarithmus (Logarithmus zur Basis 10)
  • log1p — Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • log — Natürlicher Logarithmus
  • max — Bestimmt den Maximalwert
  • min — Bestimmt den Minimalwert
  • octdec — Wandelt von oktal zu dezimal um
  • pi — Liefert den Wert von Pi
  • pow — Potenzfunktion
  • rad2deg — Rechnet einen Winkel vom Bogenmaß in Grad um
  • round — Rundet einen Gleitkommawert
  • sin — Sinus
  • sinh — Sinus hyperbolikus
  • sqrt — Quadratwurzel
  • tan — Tangens
  • tanh — Tangens hyperbolikus

PHP if / else / elseif

Bedingte Anweisungen werden verwendet, um verschiedene Aktionen basierend auf verschiedenen Bedingungen auszuführen.

Sehr oft möchte man beim Schreiben von Code unterschiedliche Aktionen für unterschiedliche Bedingungen ausführen. Dazu können bedingte Anweisungen im Code verwendet werden.

In PHP haben wir die folgenden bedingten Anweisungen:

  • if-Anweisung – führt einen Code aus, wenn eine Bedingung wahr ist
  • if...else-Anweisung – führt einen Code aus, wenn eine Bedingung wahr ist, und einen anderen Code, wenn diese Bedingung falsch ist
  • if...elseif...else-Anweisung – führt verschiedene Codes für mehr als zwei Bedingungen aus
  • switch-Anweisung – wählt einen von vielen auszuführenden Codeblöcken aus

PHP – Die if-Anweisung

Die if-Anweisung führt einen Code aus, wenn eine Bedingung wahr ist.

<?php
// Syntax

if (bedingung) {
  Code, der ausgeführt wird, wenn die Bedingung war ist;
}
?>

Ausgabe „Guten Tag!“ wenn die aktuelle Uhrzeit (HOUR) kleiner als 20 ist:

<?php
// Syntax

if (bedingung) {
  Code, der ausgeführt wird, wenn die Bedingung wahr ist;
} else {
  Code, der ausgeführt wird, wenn die Bedingung falsch ist;
}

$zeit = date("H");

if ($zeit < "20") {
  echo "Guten Tag!";
}
?>

PHP – if…else-Anweisung

Die if...else-Anweisung führt einen Code aus, wenn eine Bedingung wahr ist, und einen anderen Code, wenn diese Bedingung falsch ist.

<?php
// Syntax

if (bedingung) {
  Code, der ausgeführt wird, wenn die Bedingung wahr ist;
} else {
  Code, der ausgeführt wird, wenn die Bedingung falsch ist;
}
?>

Ausgabe „Guten Tag!“ wenn die aktuelle Uhrzeit unter 20 ist, und „Gute Nacht!“ ansonsten:

<?php
$zeit = date("H");

if ($zeit < "20") {
  echo "Guten Tag!";
} else {
  echo "Gute Nacht!";
}
?>

PHP if…elseif…else-Anweisung

Die if...elseif...else Anweisung führt verschiedene Codes für mehr als zwei Bedingungen aus.

<?php
// Syntax

if (bedingung) {
  Code, der ausgeführt wird, wenn die Bedingung wahr ist;
} elseif (bedingung) {
  Code, der ausgeführt wird, wenn die erste Bedingung falsch ist und diese Bedingung wahr ist;
} else {
  Code, der ausgeführt wird, wenn alle Bedingungen falsch sind;
}
?>

Ausgabe „Guten Morgen!“ wenn die aktuelle Uhrzeit kleiner als 10 ist, und „Guten Tag!“ wenn die aktuelle Zeit kleiner als 20 ist. Andernfalls wird „Gute Nacht!“ ausgegeben:

<?php
$zeit = date("H");

if ($zeit < "10") {
  echo "Guten Morgen!";
} elseif ($zeit < "20") {
  echo "Guten Tag!";
} else {
  echo "Gute Nacht!";
}
?>

Aufgabe

Aufgabe 1: Passwortüberprüfung

Ziel: Überprüfe, ob ein eingegebenes Passwort den Anforderungen entspricht.

  • Anweisungen:
    1. Definiere eine Konstante MIN_LAENGE mit dem Wert 8.
    2. Definiere eine Variable $passwort und weise ihr einen Wert zu.
    3. Verwende eine if-else Anweisung, um zu überprüfen, ob die Länge des Passworts mindestens MIN_LAENGE beträgt.
    4. Gib eine entsprechende Nachricht aus, ob das Passwort akzeptiert wird oder nicht.

Aufgabe 2: Altersüberprüfung

Ziel: Entscheide, welche Art von Ticket eine Person basierend auf ihrem Alter kaufen sollte.

  • Anweisungen:
    1. Definiere eine Variable $alter.
    2. Verwende eine if-elseif-else Anweisung, um zu prüfen, ob das Alter unter 18, zwischen 18 und 65, oder über 65 ist.
    3. Gib für jede Altersgruppe eine spezifische Nachricht aus (z.B. „Kinderkarte“, „Erwachsenenkarte“, „Seniorenkarte“).

Aufgabe 3: Temperaturwarnung

Ziel: Gib eine Warnung aus, wenn die Temperatur bestimmte Schwellenwerte überschreitet.

  • Anweisungen:
    1. Definiere eine Konstante GEFRIERPUNKT mit dem Wert 0.
    2. Definiere eine Variable $temperatur und weise ihr einen Wert zu.
    3. Verwende if-else Anweisungen, um zu prüfen, ob die Temperatur unter GEFRIERPUNKT liegt, und gib eine Warnung aus.

Aufgabe 4: Benutzerrollen

Ziel: Bestimme die Zugriffsrechte basierend auf der Rolle eines Benutzers.

  • Anweisungen:
    1. Definiere eine Variable $rolle mit den möglichen Werten „Admin“, „Editor“, „Benutzer“.
    2. Verwende eine if-elseif-else Struktur, um zu entscheiden, welche Nachricht ausgegeben wird („Zugriff auf alle Daten“, „Zugriff auf Editieren“, „Zugriff auf Lesen“).

Aufgabe 5: Rabattberechnung

Ziel: Berechne den Endpreis eines Produktes nach Anwendung eines Rabatts, wenn bestimmte Bedingungen erfüllt sind.

  • Anweisungen:
    1. Definiere eine Konstante STANDARD_RABATT mit dem Wert 0.05 (5%).
    2. Definiere Variablen $ursprungspreis und $istWochenende.
    3. Wenn $istWochenende wahr ist, wende den STANDARD_RABATT an. Verwende eine if-else Anweisung, um den Endpreis zu berechnen.
    4. Gib den ursprünglichen Preis und den Endpreis aus.

Übungsaufgaben

1. Aufgabe

Erstelle eine Datei test.php und führe verschiedene Programme aus o.g. Beispielen durch. Verwende dabei verschiedene:

  • Operatoren
  • Konstanten
  • if…else…elseif Anweisungen