In diesem Tutorial untersuchen wir, was „declare(strict_types=1)“ bedeutet, warum PHP-Entwickler es verwenden sollten und warum nicht, und stellen Beispiele zur Veranschaulichung seiner Bedeutung bereit.
Diese Einstellung ist auf die lose typisierte Natur von PHP und die steigende Nachfrage nach streng typisierten Funktionen zurückzuführen, die von anderen beliebten Sprachen wie Java angeführt wird.
Beide Schreibstrategien (locker vs. streng) haben Vor- und Nachteile. Lassen Sie uns zunächst ihre Bedeutung verstehen.
Eine lose typisierte Sprache, auch als dynamisch typisierte Sprache bekannt, ist eine Programmiersprache, bei der Variablen zur Kompilierungszeit nicht an einen bestimmten Datentyp gebunden sind. Sie müssen nicht im Voraus angeben, welchen Datentyp eine Variable während der Ausführung enthalten soll.
Der Datentyp einer Variablen wird anhand des von ihr gehaltenen Werts bestimmt und kann sich zur Laufzeit ändern.
PHP ist im Grunde eine lose typisierte Sprache, daher können wir ein Beispiel damit schreiben:
$a = "hello"; $a = 1; // No errors. The content of the variable is changed from string to int.
Lose typisierte Sprachen ermöglichen oft eine implizite Typkonvertierung, was bedeutet, dass sie Daten automatisch von einem Typ in einen anderen konvertieren können, um Vorgänge zu erleichtern. Dieses Verhalten kann zu mehr Flexibilität führen, aber auch zu einem höheren Potenzial für Funktionsfehler.
Eine streng typisierte Sprache, auch als statisch typisierte Sprache bekannt, ist eine Programmiersprache, bei der Variablen zur Kompilierungszeit explizit mit einem bestimmten Datentyp deklariert werden müssen.
Sobald der Datentyp einer Variablen definiert ist, kann er sich während ihrer Lebensdauer nicht ändern. Streng typisierte Sprachen führen keine implizite Typkonvertierung durch, was bedeutet, dass Operationen zwischen Variablen unterschiedlichen Typs normalerweise zu einem Kompilierungsfehler führen.
Wir können ein Beispiel in Java schreiben:
public class CompileError { public static void main(String[] args) { int x = 15; x = "Valerio"; } }
declare(strict_types=1) ist eine Direktive in PHP, die eine strikte Typprüfung für Funktions- und Methodenargumente und Rückgabewerte innerhalb einer bestimmten PHP-Datei oder eines bestimmten PHP-Codeblocks erzwingt. Wenn Sie die strikte Typprüfung aktivieren, stellt PHP sicher, dass die Datentypen der Funktionsargumente und Rückgabewerte genau mit den deklarierten Typen übereinstimmen. Genauso wie Java.
Platzieren Sie diese Deklaration ganz am Anfang Ihrer PHP-Datei oder Ihres Codeblocks (vor jedem anderen Code), um eine strikte Typisierung zu ermöglichen.
Hier ist die grundlegende Syntax, um eine strikte Typprüfung zu ermöglichen:
<?php declare(strict_types=1); function speak(string $name): string { return "Hello {$name}!"; } speak(1); // This fires the error "Uncaught TypeError" speak("Valerio"); // This prints "Hello Valerio!"
Das Erzwingen einer strikten Typisierung kann die Zuverlässigkeit Ihres Codes in bestimmten Szenarien erheblich verbessern.
Eine strikte Eingabe hilft, unerwartete typbezogene Probleme zu vermeiden, die zu Laufzeitfehlern oder falschem Verhalten führen können. Es stellt sicher, dass Sie immer mit den Datentypen arbeiten, die Sie erwarten.
Stellen Sie sich zum Beispiel eine Funktion vor, die zwei Zahlen addieren soll:
function add($a, $b) { return $a + $b; } $result = add(5, '10'); // Without strict typing, this is allowed. echo $result; // Output: 15
Ohne strikte Typen würde PHP die Zeichenfolge „10“ in eine Ganzzahl umwandeln und ein Ergebnis erzeugen, das möglicherweise nicht Ihren Absichten entspricht.
Mit deklarieren(strict_types=1):
declare(strict_types=1); function add(int $a, int $b) { return $a + $b; } $result = add(5, '10'); // Fatal error: Uncaught TypeError
Wenn strikte Typen aktiviert sind, löst PHP einen TypeError aus und verhindert, dass die Funktion ausgeführt wird, wodurch die Typsicherheit gewährleistet wird.
Weiter zum Originalartikel --> https://inspector.dev/why-use-declarestrict_types1-in-php-fast-tips/
Das obige ist der detaillierte Inhalt vonWarum deklarieren(strict_types=in PHP verwenden – Schnelle Tipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!