2. Unterrichtsblock

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ährend print 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ährend print ein Argument enthalten kann.
  • echo ist geringfügig schneller als print.

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:

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 ​​von is_int()
  • is_long() – Alias ​​von is_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 ​​von is_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.