PHP - Skalare Typdeklarationen

Hallo, angehende Programmierer! Heute machen wir uns auf eine aufregende Reise in die Welt von PHP, wobei wir uns speziell auf die Skalare Typdeklarationen konzentrieren. Keine Sorge, wenn diese Wörter derzeit wie Kauderwelsch klingen – bis zum Ende dieses Tutorials werden Sie diese Begriffe wie ein erfahrener Entwickler verwenden können!

PHP - Scalar Type Declarations

Was sind Skalare Typdeklarationen?

Bevor wir tiefer einsteigen, lassen Sie uns einmal herausfinden, was "Skalare Typdeklarationen" eigentlich bedeuten. In der Programmierung ist ein "Skalar" ein einfacher Wert, wie eine Zahl oder eine Textkette. "Typdeklaration" ist eine schicke Art zu sagen, dass wir PHP mitteilen, welche Art von Daten wir erwarten, dass eine Funktion empfängt oder zurückgibt.

Stellen Sie sich vor, Sie betreiben einen Zitronenadederstand. Sie möchten doch nicht, dass jemand Ihnen einen Basketball anstelle von Zitronen übergibt, wenn Sie nach Zitronen fragen, oder? Genau das machen Typdeklarationen – sie stellen sicher, dass Ihr Code die richtige Art von Daten zum Arbeiten erhält.

Skalare Typdeklarationen in PHP 7

PHP 7 führte eine revolutionäre Funktion ein: die Fähigkeit, skalare Typen für Funktion parameter und Rückgabewerte zu deklarieren. Das war ein großer Schritt, denn es half, Fehler frühzeitig zu fangen und den Code zuverlässiger zu machen.

Sehen wir uns ein einfaches Beispiel an:

function addNumbers(int $a, int $b): int {
return $a + $b;
}

echo addNumbers(5, 10); // Ausgabe: 15

In diesem Code:

  • int $a, int $b: Wir sagen, dass sowohl $a als auch $b Ganzzahlen sein sollten.
  • : int: Dieser Teil nach der Funktion gibt an, dass die Funktion eine Ganzzahl zurückgeben wird.

Nun probieren wir etwas Schelmisches:

echo addNumbers("5", "10");

Überraschung! Das funktioniert immer noch und gibt 15 aus. Aber warum? Willkommen in der Welt der...

Zwangsumwandlungsmodus

Standardmäßig arbeitet PHP 7 im sogenannten "Zwangsumwandlungsmodus". Es ist wie ein sehr verständnisvoller Freund, der versucht, das zu verstehen, was Sie sagen, auch wenn Sie nicht完全 klar sind.

Im Zwangsumwandlungsmodus versucht PHP, Werte in den deklarierten Typ umzuwandeln (oder "zu zwingen"), wenn möglich. Also als wir "5" und "10" als Zeichenketten übergeben haben, sagte PHP: "Ich verstehe, was du vorhast," und wandelte sie in Ganzzahlen um.

Hier ist eine Tabelle mit einigen häufigen Umwandlungen:

Eingabe Deklarierter Typ Ergebnis
"42" int 42
"3.14" float 3.14
1 string "1"
true int 1

Aber was ist, wenn wir möchten, dass PHP strenger ist? Hier kommt...

Strikter Modus

Der strikte Modus ist wie ein Lehrer, der präzise Antworten verlangt. Um den strikten Modus zu aktivieren, fügen Sie diese Zeile ganz oben in Ihre PHP-Datei ein:

declare(strict_types=1);

Nun probieren wir unser schelmisches Beispiel noch einmal:

declare(strict_types=1);

function addNumbers(int $a, int $b): int {
return $a + $b;
}

echo addNumbers("5", "10");

Bam! Dies wird jetzt eine TypeError auslösen. PHP sagt: "Ich bat um Ganzzahlen, und du gabst mir Zeichenketten. Das gefällt mir nicht."

Warum Skalare Typdeklarationen verwenden?

  1. Klarerer Code: Es ist wie eine Notiz für zukünftiges Ich (oder andere Entwickler). "Hey, diese Funktion erwartet Zahlen!"

  2. Fehler frühzeitig fangen: Anstatt seltsame Ergebnisse zu erhalten, bekommen Sie Fehler, die direkt auf das Problem hinweisen.

  3. Bessere Leistung: PHP kann den Code besser optimieren, wenn es genau weiß, welche Typen zu erwarten sind.

Ein realitätsnahes Beispiel

Angenommen, Sie bauen eine einfache Taschenrechner-App. So könnten Sie skalare Typdeklarationen verwenden:

declare(strict_types=1);

class Calculator {
public function add(float $a, float $b): float {
return $a + $b;
}

public function subtract(float $a, float $b): float {
return $a - $b;
}

public function multiply(float $a, float $b): float {
return $a * $b;
}

public function divide(float $a, float $b): float {
if ($b == 0) {
throw new Exception("Kann nicht durch null teilen!");
}
return $a / $b;
}
}

$calc = new Calculator();

echo $calc->add(5.5, 4.5);      // Ausgabe: 10
echo $calc->subtract(10, 3);    // Ausgabe: 7
echo $calc->multiply(3, 4);     // Ausgabe: 12
echo $calc->divide(10, 2);      // Ausgabe: 5

// Dies wird im strengen Modus einen Fehler auslösen
// echo $calc->add("5", "10");

In diesem Beispiel haben wir eine Calculator-Klasse mit Methoden erstellt, die alle Fließkommatypdeklarationen verwenden. Dies stellt sicher, dass alle unsere Berechnungen mit Zahlen arbeiten und verhindert versehentliche Zeichenkettenverkettungen oder andere typbezogene Missgeschicke.

Fazit

Skalare Typdeklarationen in PHP sind wie Leitplanken auf einer Gebirgsstraße. Sie helfen, Ihren Code auf Kurs zu halten und machen es einfacher, festzustellen, wenn etwas falsch läuft. Obwohl sie zunächst etwas lästig erscheinen mögen, glauben Sie mir – zukünftiges Ich wird Ihnen für die Klarheit und Sicherheit danken, die sie bieten.

Denken Sie daran, dass Programmierung全部 über klare Kommunikation geht – nicht nur mit dem Computer, sondern auch mit anderen Entwicklern (einschließlich zukünftiges Ich!). Typdeklarationen sind ein weiteres Werkzeug in Ihrem Werkzeugkasten, um klareren, sichereren und effizienteren Code zu schreiben.

Nun, gehen Sie hinaus und deklarieren Sie diese Typen! Ihr Code wird Ihnen dafür danken, und Ihre Kollegen Entwickler auch. Viel Spaß beim Programmieren!

Credits: Image by storyset