Warum deklarieren(strict_types=in PHP verwenden – Schnelle Tipps

PHPz
Freigeben: 2024-08-12 18:43:19
Original
838 Leute haben es durchsucht

Why use declare(strict_types=in PHP – Fast tips

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.

Locker typisierte Sprache

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.
Nach dem Login kopieren

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.

Streng typisierte Sprache

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";

    }
}
Nach dem Login kopieren

Was ist „declare(strict_types=1)“?

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!"
Nach dem Login kopieren

Warum Declare(strict_types=1) verwenden?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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.

Welche Strategie wählen?

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage