Bedeutung der PHP7-Typbeschränkungen
vor PHP7 , Funktionen und Klassenmethoden müssen keine Variablentypen deklarieren, und es können beliebige Daten übergeben und zurückgegeben werden, sodass fast die meisten aufrufenden Vorgänge feststellen müssen, ob der zurückgegebene Datentyp qualifiziert ist.
Um dieses Problem zu lösen, führte PHP7 Typdeklarationen ein.
Es gibt derzeit zwei Arten von Variablen, die deklariert werden können: formale Parameter und Rückgabewerte.
Zu den unterstützten Typen gehören Ganzzahl, Gleitkomma, Zeichenfolge und Boolescher Wert.
Der folgende Code:
<?php function study(int $get) { return $get; } var_dump(study('ddd'));
Um die Länge des Codes zu sparen, werde ich kein OOP schreiben, sondern die Funktion nur als Beispiel verwenden.
Diese Funktion gibt an, dass der Parametertyp int ist und die Zeichenfolge „ddd“ beim Aufruf übergeben wird, sodass beim Ausführen dieses Codes ein schwerwiegender Fehler auftritt.
In einigen Fällen ist PHP immer nicht so ernst, wie folgt:
<?php function study(bool $get) { return $get; } var_dump(study('ddd'));
Der angegebene Parametertyp ist bool, aber die eingehende Zeichenfolge wird in true konvertiert Das Ausgabeergebnis nach der Ausführung lautet: bool(true)
Wenn Sie den Einschränkungstyp erzwingen möchten, können Sie am Kopf der Datei eine Deklarationsanweisung hinzufügen:
<?php declare(strict_types = 1); function study(bool $get) { return $get; } var_dump(study('ddd'));
Zu diesem Zeitpunkt tritt auch ein schwerwiegender Fehler auf, da der angegebene Parametertyp bool, der übergebene Parametertyp jedoch string ist. Nur das Ändern von „ddd“ in „true“ und „false“ funktioniert, auch wenn es 1 oder 0 ist.
Als nächstes führen wir die Rückgabetypdeklaration ein:
<?php declare(strict_types = 1); function study(bool $get) : int { return (int)$get; } var_dump(study(true));
Fügen Sie einen Doppelpunkt hinzu und geben Sie nach den Klammern des formalen Parameters ein, um den Typ des Methodenrückgabewerts und was anzugeben Art der Rückgabe ist angegeben.
ist auch von der Deklaration betroffen.
Wenn keine Typobligatorik vorliegt, konvertiert PHP die zurückgegebenen Daten in Daten des angegebenen Typs und gibt sie dann nicht zurück gezwungen int. Es wird ein Fehler gemeldet.
Wenn obligatorische Einschränkungen angegeben sind, führt PHP keine Typkonvertierung durch, sondern vergleicht. Wenn die Typen unterschiedlich sind, wird ein Fehler gemeldet.
Außerdem kann der Rückgabewerttyp auch den Objektnamen angeben, dann muss eine Instanz des angegebenen Objekts zurückgegeben werden, wie zum Beispiel:
<?php class person { private function __construct($name) { $this->name = $name; } static function instance(string $name) : person { return new self($name); } } person::instance('zhangsan');
Dies ist eine der neuen Funktionen von PHP7: Typdeklaration.
Das obige ist der detaillierte Inhalt vonDie Bedeutung von PHP7-Typbeschränkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!