Heim >Backend-Entwicklung >PHP-Tutorial >Wie gehe ich mit Hinweisen zur Ablehnung von Rückgabetypen in PHP um?
Seit PHP 7.0 sind Rückgabetypen für Funktionen und Methoden verfügbar. Dies bildet einen Vertrag, auf den sich anderer Code verlassen kann.
Zum Beispiel:
<code class="php">class Base { public function getList(): Iterator { // ... } } // Calling code: $foo = new Base(); var_dump($foo instanceOf Base); // true var_dump($foo->getList() instanceOf Iterator); // true</code>
Beim Erweitern einer Klasse kann ein spezifischerer Rückgabetyp definiert werden (Kovarianz). Die Angabe eines anderen Rückgabetyps oder keinem Rückgabetyp ist jedoch nicht zulässig.
Das Hinzufügen von Rückgabetypen zu vorhandenen Klassen oder Schnittstellen erfordert Änderungen beim Erweitern oder Implementieren von Klassen. Mit der Einführung von Union Types in PHP 8.0 wurden Rückgabetypen dokumentiert, aber nicht als Fehler erzwungen. Stattdessen wurde ein Verfallshinweis hinzugefügt.
Widersprüchlicher Code, der mehrere PHP-Versionen und Rückgabetypen vor 8.0 unterstützen muss, führte zur Entwicklung des #[ReturnTypeWillChange ]-Attribut. Wenn es einer Methode hinzugefügt wird, unterdrückt es den Verfallshinweis in PHP 8.1. Dies gibt Zeit, das Problem vor PHP 9.0 zu beheben, wo möglicherweise interne Rückgabetypen erzwungen werden.
Entscheiden Sie Ihre Vorgehensweise:
Wenn es sicher ist, den Rückgabetyp zu ändern:
Wenn Sie ältere PHP-Versionen oder nicht aktualisierten Code unterstützen müssen:
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Hinweisen zur Ablehnung von Rückgabetypen in PHP um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!