Heim > Backend-Entwicklung > PHP7 > Die Bedeutung von PHP7-Typbeschränkungen

Die Bedeutung von PHP7-Typbeschränkungen

藏色散人
Freigeben: 2023-02-17 13:04:02
Original
2840 Leute haben es durchsucht

Die Bedeutung von PHP7-Typbeschränkungen

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(&#39;ddd&#39;));
Nach dem Login kopieren

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(&#39;ddd&#39;));
Nach dem Login kopieren

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(&#39;ddd&#39;));
Nach dem Login kopieren

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

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(&#39;zhangsan&#39;);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
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