2. Unterrichtsblock

Kursinhalte
PHP print & echo
Mit PHP gibt es zwei grundlegende Möglichkeiten, eine Ausgabe zu erhalten: echo
und print
.
In den folgenden Unterrichtsblöcken wird echo
oder print
in fast jedem Beispiel verwendet. Daher enthält dieses Kapitel ein wenig mehr Informationen über diese beiden Ausgabeanweisungen.
echo
und print
sind mehr oder weniger gleich. Sie werden beide verwendet, um Daten auf dem Bildschirm auszugeben.
Die Unterschiede sind gering:
echo
hat keinen Rückgabewert, währendprint
einen Rückgabewert von 1 hat, sodass es in Ausdrücken verwendet werden kann.echo
kann mehrere Parameter enthalten (obwohl eine solche Verwendung selten ist), währendprint
ein Argument enthalten kann.echo
ist geringfügig schneller alsprint
.
Ein Argument ist der tatsächliche Wert, der einer Funktion zugeführt wird, während der Parameter die Variable innerhalb der Definition der Funktion ist. Man kann sagen, dass ein Parameter ein Typ ist, der in Funktionsdefinitionen erscheint, während ein Argument eine Instanz ist, die in Funktionsaufrufen erscheint.
Die PHP-echo-Anweisung
Die echo
-Anweisung kann mit oder ohne Klammern verwendet werden: echo
oder echo()
.
Text mit echo anzeigen
Das folgende Beispiel zeigt, wie Text mit dem echo
Befehl ausgegeben wird (beachten Sie, dass der Text HTML-Markup enthalten kann):
<?php
echo "<h2>Webentwicklerkurs PHP</h2>";
echo "Hallo Welt!<br>";
echo "Ich werde PHP lernen!<br>";
echo "Dieser ", "String ", "wurde ", "mit ", "mehreren Parametern erstellt.";
?>
Variablen mit echo anzeigen
Das folgende Beispiel zeigt die Ausgabe von Text und Variablen mit der echo
Anweisung:
<?php
$txt1 = "PHP lernen";
$txt2 = "webentwicklerkurs.de";
$x = 5;
$y = 4;
echo "<h2>" . $txt1 . "</h2>";
echo "PHP lernen auf " . $txt2 . "<br>";
echo $x + $y;
?>
Die PHP-print-Anweisung
Die print
-Anweisung kann mit oder ohne Klammern verwendet werden: print
oder print()
.
Text anzeigen
Das folgende Beispiel zeigt, wie Text mit dem print
Befehl ausgegeben wird (zu beachten ist, dass der Text HTML-Markup enthalten kann):
<?php
print "<h2>PHP lernen!</h2>";
print "Hallo Welt!<br>";
print "Ich werde PHP lernen!";
?>
Variablen anzeigen
Das folgende Beispiel zeigt die Ausgabe von Text und Variablen mit der print
-Anweisung:
<?php
$txt1 = "PHP lernen";
$txt2 = "Webentwicklerkurs.de";
$x = 5;
$y = 4;
print "<h2>" . $txt1 . "</h2>";
print "PHP lernen auf " . $txt2 . "<br>";
print $x + $y;
?>
Aufgabe
Aufgabe 1: Einfacher Textausdruck
Erstelle ein PHP-Skript, das den Satz „Hallo Welt!“ mit beiden Methoden, echo
und print
, ausgibt. Beachte, dass echo
und print
leicht unterschiedlich in ihrer Verwendung sein können, aber für diese einfache Aufgabe sollten sie austauschbar sein.
Aufgabe 2: Variablen ausgeben
Definiere eine Variable mit dem Namen $meinName
und weise ihr deinen Namen als Wert zu. Verwende dann sowohl echo
als auch print
, um die Variable zusammen mit einer Begrüßung auszugeben, z.B. „Mein Name ist [dein Name]“.
Aufgabe 3: Mehrere Variablen ausgeben
Erstelle zwei Variablen, $vorname
und $nachname
, und weise ihnen entsprechende Werte zu. Benutze dann die echo
-Methode, um beide Variablen in einem Satz auszugeben. Verwende dabei auch die Konkatenation (Verkettung von Strings). Als nächstes versuche, das gleiche mit der print
-Methode zu tun. Beachte, dass print
nur einen einzigen Argument akzeptiert, weshalb du die Variablen und den Text zuerst verketten musst.
PHP Datentypen
Variablen können Daten unterschiedlichen Typs speichern, und die verschiedenen Datentypen können wiederum unterschiedliche Dinge tun.
PHP unterstützt die folgenden Datentypen:
- String
- Integer
- Float (Fließkommazahlen – auch Double genannt)
- Boolsche Werte
- Arrays
- Objekte
- NULL
- Resource
PHP-String
Ein String ist eine Folge von Zeichen, wie „Hallo Welt!“. Ein String kann ein beliebiger Text in Anführungszeichen sein. Man kann einfache oder doppelte Anführungszeichen verwenden:
<?php
$x = "Hallo Welt!";
$y = 'Hallo Welt!';
echo $x;
echo "<br>";
echo $y;
?>
PHP-Ganzzahl (Integer)
Ein ganzzahliger Datentyp ist eine Nichtdezimalzahl zwischen -2.147.483.648 und 2.147.483.647.
Regeln für ganze Zahlen:
- Eine ganze Zahl muss mindestens eine Ziffer haben
- Eine ganze Zahl darf keinen Dezimalpunkt haben
- Eine ganze Zahl kann entweder positiv oder negativ sein
- Ganzzahlen können in folgender Schreibweise angegeben werden: dezimal (Basis 10), hexadezimal (Basis 16), oktal (Basis 8) oder binär (Basis 2).
Im folgenden Beispiel ist $x eine Ganzzahl. Die PHP-Funktion var_dump() gibt Datentyp und Wert zurück:
<?php
$x = 5985;
var_dump($x);
?>
PHP-Float (Fließkommazahl)
Ein Float (Gleitkommazahl) ist eine Zahl mit Dezimalpunkt oder eine Zahl in Exponentialform.
Im folgenden Beispiel ist $x ein Float. Die PHP-Funktion var_dump() gibt Datentyp und Wert zurück:
<?php
$x = 10.365;
var_dump($x);
?>
PHP Boolesche Werte
Ein boolescher Wert stellt zwei mögliche Zustände dar: TRUE oder FALSE.
$x = true;
$y = false;
Boolesche Werte werden häufig beim bedingten Testen verwendet. In einem späteren Unterrichtsblock wird darauf näher eingegangen.
PHP-Array
Ein Array speichert mehrere Werte in einer einzigen Variablen. Im folgenden Beispiel ist $obst ein Array. Die PHP-Funktion var_dump() gibt Datentyp und Wert zurück:
<?php
$obst = array("Apfel","Birne","Zwetschge");
var_dump($obst);
?>
Auf Arrays gehen wir später näher ein.
PHP-Objekt
Klassen und Objekte sind die beiden Hauptaspekte der objektorientierten Programmierung. Eine Klasse ist eine Vorlage für Objekte, und ein Objekt ist eine Instanz einer Klasse.
Wenn die einzelnen Objekte erstellt werden, erben sie alle Eigenschaften und Verhaltensweisen von der Klasse, aber jedes Objekt hat unterschiedliche Werte für die Eigenschaften.
Nehmen wir an, wir haben eine Klasse namens „Auto“. Ein Auto kann Eigenschaften wie Modell, Farbe usw. haben. Wir können Variablen wie $modell, $farbe usw. definieren, um die Werte dieser Eigenschaften zu speichern.
Wenn die einzelnen Objekte (Mercedes, BMW usw.) erstellt werden, erben sie alle Eigenschaften und Verhaltensweisen von der Klasse, aber jedes Objekt hat unterschiedliche Werte für die Eigenschaften.
Wenn man eine __construct()-Funktion erstellt, ruft PHP diese Funktion automatisch auf, wenn ein neues Objekt aus dieser Klasse erstellt wird.
<?php
class Auto {
public $farbe; // Eigenschaft mit Variable $farbe
public $modell; // Eigenschaft mit Variable $modell
public function __construct($farbe, $modell) {
$this->farbe = $farbe;
$this->modell = $modell;
}
public function nachricht() {
return "Mein Auto ist " . $this->farbe . " und vom Hersteller " . $this->modell . "!";
}
}
$meinAuto = new Auto("schwarz", "Mercedes"); // Ansprache der Klasse "Auto"
echo $meinAuto -> nachricht();
echo "<br>";
$meinAuto = new Auto("rot", "BMW");
echo $meinAuto -> nachricht();
?>
Aufgabe
Lieblingsspiel eintragen
Baue nach o.g. Vorbild ein Eingabeformular, welches zwei Werte zulässt: Spiel und Herausgeber. Bei absenden des Formulars soll ein Objekt aus der Klasse Buch erzeugt werden, welches folgende Ausgabe erzeugt: Mein Lieblingsspiel ist Spiel von der Firma Herausgeber.
PHP-null-Wert
Null ist ein spezieller Datentyp, der nur einen Wert haben kann: NULL. Eine Variable vom Datentyp NULL ist eine Variable, der kein Wert zugewiesen ist.
Tipp: Wenn eine Variable ohne Wert erstellt wird, wird ihr automatisch der Wert NULL zugewiesen.
Variablen können auch geleert werden, indem der Wert auf NULL gesetzt wird:
<?php
$x = "Hallo Welt!";
$x = null;
var_dump($x);
?>
PHP-Resource
Der spezielle Ressourcentyp ist kein tatsächlicher Datentyp. Es ist das Speichern einer Referenz auf Funktionen und Ressourcen außerhalb von PHP. Ein allgemeines Beispiel für die Verwendung des Ressourcendatentyps ist ein Datenbankaufruf.
Über den Ressourcentyp werden wir in einem späteren Unterrichtsblock beim Thema MySQL sprechen, da das Thema ein fortgeschrittenes ist.
PHP strings & numbers
Ein String ist eine Folge von Zeichen, wie „Hallo Welt!“.
PHP-string-Funktionen
In diesem Bereich werden wir uns einige häufig verwendete Funktionen zum Manipulieren von Strings ansehen.
strlen()
Die PHP- strlen()
Funktion gibt die Länge eines Strings zurück.
Gibt die Länge des Strings „Hallo Welt!“ zurück:
<?php
echo strlen("Hallo Welt!"); // Ausgabe 11
?>
str_word_count()
Die PHP- str_word_count()
Funktion zählt die Anzahl der Wörter in einem String.
In folgendem Beispiel wird die Anzahl der Wörter in der Zeichenfolge „Hallo Welt!“ gezählt:
<?php
echo str_word_count("Hallo Welt!"); // Ausgabe 2
?>
strrev()
Die PHP- strrev()
Funktion kehrt einen String um.
Kehrt die Zeichenkette „Hello world!“ um:
<?php
echo strrev("Hallo Welt!"); // Ausgabe !tleW ollaH
?>
strpos()
Die PHP- strpos()
Funktion sucht innerhalb eines Strings nach einem bestimmten Text. Wenn eine Übereinstimmung gefunden wird, gibt die Funktion die Zeichenposition der ersten Übereinstimmung zurück. Wenn keine Übereinstimmung gefunden wird, wird FALSE zurückgegeben.
// Suche in der Zeichenfolge „Hallo Welt!“ nach dem Text „Welt“:
<?php
echo strpos("Hallo Welt!", "Welt"); // Ausgabe 6
?>
Tipp: Die erste Zeichenposition in einem String ist 0 (nicht 1).
str_replace()
Die PHP- str_replace()
Funktion ersetzt einige Zeichen durch einige andere Zeichen in einem String.
// Ersetze den Text „Welt“ durch „Leute“:
<?php
echo str_replace("Welt", "Leute", "Hallo Welt!"); // Ausgabe Hallo Leute!
?>
Alle PHP-string-Funktionen
Eine vollständige Referenz aller String-Funktionen existiert hier: https://www.w3schools.com/php/php_ref_string.asp
Aufgabe
Aufgabe 1: Zeichenkette umkehren
Erstelle ein PHP-Skript, das eine Zeichenkette (String) einliest und diese umkehrt. Verwende dafür die PHP-Funktion strrev()
.
Aufgabe 2: Zeichen zählen
Schreibe ein PHP-Skript, das die Anzahl der Zeichen in einem String ermittelt. Nutze hierfür die Funktion strlen()
.
Aufgabe 3: Teilstring suchen
Erstelle ein Skript, das prüft, ob ein bestimmter Teilstring innerhalb eines Strings existiert. Verwende die Funktion strpos()
und gib eine Nachricht aus, je nachdem, ob der Teilstring gefunden wurde oder nicht.
Aufgabe 4: String in Kleinbuchstaben umwandeln
Verwende die Funktion strtolower()
in einem PHP-Skript, um einen gegebenen String in Kleinbuchstaben umzuwandeln und auszugeben.
Aufgabe 5: String ersetzen
Nutze die Funktion str_replace()
in einem PHP-Skript, um alle Vorkommen eines Substrings in einem String durch einen anderen Substring zu ersetzen. Gib den modifizierten String aus.
PHP-numbers
Eine Sache, die man bei PHP beachten sollte, ist, dass es eine automatische Datentypkonvertierung bietet.
Wenn Sie also einer Variablen einen ganzzahligen Wert zuweisen, ist der Typ dieser Variablen automatisch eine ganze Zahl. Wenn Sie dann derselben Variablen einen String zuweisen, ändert sich der Typ in einen String.
Diese automatische Konvertierung kann manchmal den Code beschädigen.
PHP-Ganzzahlen
2, 256, -256, 10358, -179567 sind alles ganze Zahlen.
Eine Ganzzahl ist eine Zahl ohne Dezimalstelle.
Ein ganzzahliger Datentyp ist eine Nichtdezimalzahl zwischen -2147483648 und 2147483647 in 32-Bit-Systemen und zwischen -9223372036854775808 und 9223372036854775807 in 64-Bit-Systemen. Ein größerer (oder kleinerer) Wert wird als Gleitkommazahl gespeichert, da er die Grenze einer Ganzzahl überschreitet.
Hinweis: Eine weitere wichtige Sache zu wissen ist, dass selbst wenn 4 * 2,5 10 ist, das Ergebnis als Gleitkommazahl gespeichert wird, da einer der Operanden eine Gleitkommazahl (2,5) ist.
Hier sind einige Regeln für ganze Zahlen:
- Eine ganze Zahl muss mindestens eine Ziffer haben
- Eine Ganzzahl darf KEINEN Dezimalpunkt haben
- Eine ganze Zahl kann entweder positiv oder negativ sein
- Ganzzahlen können in drei Formaten angegeben werden: dezimal (10-basiert), hexadezimal (16-basiert – mit 0x vorangestellt) oder oktal (8-basiert – mit 0 vorangestellt)
PHP hat die folgenden vordefinierten Konstanten für ganze Zahlen:
- PHP_INT_MAX – Die größte unterstützte Ganzzahl
- PHP_INT_MIN – Die kleinste unterstützte Ganzzahl
- PHP_INT_SIZE – Die Größe einer Ganzzahl in Bytes
PHP hat die folgenden Funktionen, um zu prüfen, ob der Typ einer Variablen Integer ist:
is_int()
is_integer()
– Alias vonis_int()
is_long()
– Alias vonis_int()
// Überprüfung, ob der Typ einer Variablen eine Ganzzahl ist:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP-floats (Fließ, oder Gleitkommazahlen)
Ein Float ist eine Zahl mit Dezimalpunkt oder eine Zahl in Exponentialform.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 sind alle Floats.
Der Float-Datentyp kann normalerweise einen Wert bis zu 1,7976931348623E+308 (plattformabhängig) speichern und hat eine maximale Genauigkeit von 14 Ziffern.
PHP hat die folgenden vordefinierten Konstanten für Floats (ab PHP 7.2):
- PHP_FLOAT_MAX – Die größte darstellbare Gleitkommazahl
- PHP_FLOAT_MIN – Die kleinste darstellbare positive Fließkommazahl
- PHP_FLOAT_MAX – Die kleinste darstellbare negative Gleitkommazahl
- PHP_FLOAT_DIG – Die Anzahl der Dezimalstellen, die ohne Genauigkeitsverlust in eine Gleitkommazahl und zurück gerundet werden können
- PHP_FLOAT_EPSILON – Die kleinste darstellbare positive Zahl x, sodass x + 1,0 != 1,0
PHP hat die folgenden Funktionen, um zu prüfen, ob der Typ einer Variable eine Gleitkommazahl ist:
is_float()
is_double()
– Alias vonis_float()
// Überprüfung, ob der Typ einer Variablen eine Gleitkommazahl ist:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Unendlichkeit
Ein numerischer Wert, der größer als PHP_FLOAT_MAX ist, wird als unendlich betrachtet.
PHP hat die folgenden Funktionen, um zu prüfen, ob ein numerischer Wert endlich oder unendlich ist:
is_finite()
is_infinite()
Die PHP-Funktion var_dump()
gibt jedoch den Datentyp und -wert zurück:
// Prüfung, ob ein numerischer Wert endlich oder unendlich ist:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN steht für Not a Number. NaN wird für unmögliche mathematische Operationen verwendet.
PHP hat die folgenden Funktionen, um zu prüfen, ob ein Wert keine Zahl ist:
is_nan()
Die PHP-Funktion var_dump() gibt den Datentyp und -wert zurück:
// Eine ungültige Berechnung gibt einen NaN-Wert zurück:
<?php
$x = acos(8);
var_dump($x);
?>
Numerische PHP-Strings
Die PHP-Funktion is_numeric()
kann verwendet werden, um herauszufinden, ob eine Variable numerisch ist. Die Funktion gibt true
zurück, wenn die Variable eine Zahl oder ein numerischer String ist, andernfalls false
.
// Prüfung, ob die Variable numerisch ist:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Servus";
var_dump(is_numeric($x));
?>
Hinweis: Ab PHP 7.0 gibt die Funktion
is_numeric()
FALSE für numerische Strings in hexadezimaler Form zurück (z. B. 0xf4c3b00c), da diese nicht mehr als numerische Strings betrachtet werden.
PHP Casting Strings und Floats in Ganzzahlen
Manchmal muss man einen numerischen Wert in einen anderen Datentyp umwandeln. Die Funktionen (int)
, (integer)
oder intval()
werden häufig verwendet, um einen Wert in eine ganze Zahl umzuwandeln.
// Umwandlung von Kommazahlen und Zeichenketten in Ganzzahlen:
<?php
// Wandelt Kommazahl in Ganzzahl um
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Wandelt Zeichenkette in Ganzzahl um
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>
Aufgabe
Aufgabe 1: Addition von Zahlen
Erstelle ein PHP-Skript, das zwei Ganzzahlen addiert und das Ergebnis ausgibt. Verwende hierfür zwei Variablen.
Aufgabe 2: Division mit Fließkommazahl
Führe eine Division durch, bei der das Ergebnis eine Fließkommazahl ist. Gib das Ergebnis aus und achte darauf, dass das Ergebnis als Fließkommazahl dargestellt wird.
Aufgabe 3: Runden von Fließkommazahlen
Runde eine Fließkommazahl auf die nächste ganze Zahl. Verwende dafür die round()
Funktion und gib das gerundete Ergebnis aus.
Aufgabe 4: Typumwandlung zu Integer
Nimm eine Fließkommazahl und wandle sie in eine Ganzzahl um. Verwende hierfür explizites Casting mit (int)
und gib das Ergebnis aus.
Aufgabe 5: Berechnung mit gemischten Typen
Erstelle ein Skript, das eine Ganzzahl und eine Fließkommazahl addiert, das Ergebnis explizit in eine Ganzzahl umwandelt und ausgibt. Verwende auch hier Typumwandlung, um zu demonstrieren, wie PHP mit gemischten Typen umgeht.
Übungsaufgaben
1. Aufgabe
Erstelle eine Datei test.php und führe verschiedene Programme aus o.g. Beispielen durch. Verwende dabei verschiedene Variablen.
2. Aufgabe
Erstelle ein Eingabeformular inkl. Rechenmöglichkeiten für Zahlen und lasse dir die Ergebnisse als Ganzzahlen ausgeben.