Kontext:
In PHP 8.1 werden Rückgabetypen für angegeben Methoden werden immer häufiger eingesetzt, was zu Konflikten mit bestehenden Methoden führt Implementierungen.
Problem:
Wenn sich der Rückgabetyp einer Methode von einem kompatiblen Typ in einen inkompatiblen Typ ändert oder nicht angegeben ist, wird der folgende Veraltungshinweis angezeigt:
Deprecated: Return type of [Method Name] should either be compatible with ..., or the #[\ReturnTypeWillChange] attribute should be used...
Auswirkungen der Rückgabetyp-Kovarianz:
PHP 7.0 führte Rückgabetypen ein, um ein konsistentes Verhalten beim Aufrufen von Code basierend auf dem angegebenen Vertrag sicherzustellen. Erweiterungs- oder Implementierungsklassen müssen dieselben oder spezifischere Rückgabetypen beibehalten.
Hintergrund der Abwertung:
Mit der Hinzufügung von Union Types in PHP 8.0 haben interne Funktionen und Methoden einen Rückgabetyp erhalten Spezifikationen. Die Durchsetzung dieser Typen würde jedoch die Abwärtskompatibilität beeinträchtigen. Stattdessen wurde ein Verfallshinweis für vorläufige Änderungen eingeführt.
Zweck von #[\ReturnTypeWillChange] Attribut:
Dieses Attribut weist auf eine geplante Änderung des Rückgabetyps hin. PHP 8.1 ignoriert den Verfallshinweis für Methoden, die mit diesem Attribut gekennzeichnet sind, und ermöglicht so die Unterstützung älterer PHP-Versionen.
Was zu tun ist:
Hinweis: Erzwungene Rückgabetypen sind in PHP wahrscheinlich 9.0, planen Sie daher, die Attribute #[\ReturnTypeWillChange] entsprechend zu behandeln.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3