Zum Hauptinhalt Zur Navigation

Programmiersprache: PHP 7 bekommt Deklaration für skalare Typen

Mit PHP 7 können skalare Typen wie Int oder Bool deklariert werden. Das hat das Entwicklerteam nach langer Diskussion und dem Ausscheiden der ursprünglichen Entwicklerin entschieden.
/ Sebastian Grüner
22 Kommentare News folgen (öffnet im neuen Fenster)
PHP 7 bekommt eine strikte Überprüfung für skalare Typen. (Bild: PHP.net)
PHP 7 bekommt eine strikte Überprüfung für skalare Typen. Bild: PHP.net

Die Deklaration skalarer Typen ist die wohl am meisten diskutierte Funktion von PHP 7. Nach einer gestern Abend beendeten Abstimmung(öffnet im neuen Fenster) erreichte die mittlerweile fünfte Version des Vorschlags allerdings die notwendige Zweidrittelmehrheit der beteiligten Entwickler. Damit wird die Programmiersprache um die Typen Int, Float, String und Bool erweitert.

Die Verwendung einer strengen Überprüfung dieser Typen muss von den Entwicklern aber explizit in jeder Datei über die Anweisung declare(strict_types=1) erzwungen werden. Dies muss als erste Direktive in einer Datei angegeben werden und führt an anderen Stellen zu einem Kompilierfehler. Wird auf die Codezeile verzichtet, wird standardmäßig eine schwache Typenüberprüfung durchgeführt.

Wird die neue Anweisung genutzt, müssen sämtliche Funktionsaufrufe und Rückgabewerte in der Datei selbst sowie darauf aufbauenden Erweiterungen und eingebaute PHP-Funktionen beim Parsen einer Überprüfung der Typen standhalten. Geschieht das nicht, wird ein Fehler ausgegeben. Anders als bei der schwachen Überprüfung, bei der die Werte in andere Typen umgewandelt werden können, gibt es bei der starken Überprüfung nur eine einzige mögliche Umwandlung – von Int zu Float.

Anleihe aus Hack

Der von Facebook erstellte PHP-Dialekt Hack verwendet ein sehr stark ausgeprägtes Typensystem , das wesentlich weiter geht, als dies mit der nun gefallenen Entscheidung für PHP 7 umgesetzt wird. Dennoch ist davon auszugehen, dass die skalaren Typen eine Anleihe aus Hack sind.

Noch vor knapp einem Monat war eine Umsetzung der skalaren Typen ungewiss, da die hauptverantwortliche Entwicklerin, Andrea Faulds, aus Zeitmangel das Projekt verlassen hatte . Die Arbeiten an dem Vorschlag sind aber von dem Google-Angestellten Anthony Ferrara übernommen und abgeschlossen worden. Details zu der Entscheidung bietet das RFC im Projekt-Wiki(öffnet im neuen Fenster) .


Relevante Themen