Schluss mit Bangen und Hoffen: Neuerungen bei skalaren Type Hints in PHP 7?
Kommentare

Ein noch sehr aktueller RFC schlägt eine Erweiterung der skalaren Type Hints für das nächste Major Release von PHP vor: Ein schwaches Checken der Typen soll in Zukunft für Ganz- und Gleitkommazahlen, Strings und boolesche Werte Standard sein; ein striktes Checking soll optional ermöglicht werden. Diese Gelegenheit wollen wir nutzen, auch noch einen Blick auf den aktuellen Stand der Return Type Declarations zu werfen.

Im RFC Scalar Type Hints schlägt Andrea Faulds eine Erweiterung der skalaren Type Hints in PHP vor. So sollen nicht mehr nur – wie bisher – Objekte oder Arrays erzwungen werden können, sondern auch Ganz- und Gleitkommazahlen sowie Strings und boolesche Werte.

Im Standardmodus, also im „schwachen“ Type Hinting, soll PHP die Standardumformungen vornehmen und das dem Entwickler mit einer Notice quittieren. Ein Integer kann so in einen String umgewandelt und verwendet werden, ohne dass die Applikation den Dienst vderweigert. Mit einem simplen Kommando soll man, so das RFC, auch in den Strict Mode wechseln können:

declare(strict_typehints=TRUE);

Damit sollen auch PHP-eigene Funktionen die Werte erhalten, die sie erwarten – und im Bedarfsfall einen abfangbaren Fatal Error präsentieren.

Das Beste aus beiden Welten

Statt generell ein striktes Type Hinting zum implementieren und sich somit nicht nur bei den Usern auf dünnes Eis zu begeben, schlägt Faulds vor, den Strict Mode optional zuschaltbar zu machen. Über die Entscheidungsfindung und die jeweiligen Vor- und Nachteile der Annährungen an die Problematik gibt der RFC im entsprechenden Bereich detailliert Auskunft.

Brüche mit der Abwärtskompatibilität seien mit dem aktuellen Vorhaben, das strikte Checken der Daten optional zu machen, jedenfalls nicht zu erwarten. Außerdem sei lediglich die Extension ext/reflection von einem Update betroffen.

Als Zielversion schlägt Faulds PHP 7 vor. Ein – wenngleich nicht vollständiger – Pull-Request mit einer Handvoll Tests findet sich auf GitHub.

Doch da war doch noch etwas … was wurde eigentlich aus den:

Return Type Declarations

Ende April 2014 berichteten wir über den RFC zu den Return Type Declarations, mit dem sich der Return Type von Closures, Funktionen, Generators, Interfaces und Klassen bestimmen lassen sollte. In zahlreichen Kommentaren auf Twitter, Facebook und (zu wenig) im Kommentarbereich, habt ihr damals eure Unterstützung des RFCs kundgetan.

Als es dann im November zur Abstimmung kam, wurde das Voting nach kurzer Zeit mit folgender Begründung auf Eis gelegt:

A bug was found during the voting period that will require enough changes to how the RFC works that voting has been cancelled.

Mittlerweile ist der RFC Return Type Declarations mit einigen wichtigen Änderungen und Anpassungen zurückgekehrt und befindet sich bereits bis 23. Januar in der Abstimmungsphase. Aktuell, am 14. Januar um 15:05 Uhr, gibt es 10 Stimmen für eine Umsetzung und eine dagegen.

Wir halten euch auf alle Fälle auf dem Laufenden.

Aufmacherbild: hand with two fingers crossed von Shutterstock / Urheberrecht: ameer_stockphoto

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -