Sonstige Änderungen

Lockerung der Beschränkungen für reservierte Wörter

Global reservierte Wörter sind nun innerhalb von Klassen, Schnittstellen und Traits als Namen für Eigenschaften, Konstanten und Methoden erlaubt. Dadurch werden Probleme mit der Abwärtskompatibilität verringert, wenn neue Schlüsselwörter eingeführt werden, und Einschränkungen bei der Namensgebung für APIs vermieden.

Dies ist besonders nützlich, um interne DSLs mit "sprechenden" Schnittstellen (Fluent Interfaces) zu erstellen:

<?php
// 'new', 'private' und 'for' waren bisher nicht nutzbar.
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

Die einzige Einschränkung dabei ist, dass das Schlüsselwort class immer noch nicht als Name für eine Konstante verwendet werden kann, da es sonst zu einem Konflikt mit der Syntax zur Auflösung von Klassennamen (ClassName::class) kommen würde.

Die Warnung bei date.timezone wurde entfernt

Bisher wurde eine Warnung ausgegeben, wenn die INI-Einstellung date.timezone nicht vor der Verwendung von datums- oder zeitbasierten Funktionen gesetzt wurde. Nun wurde diese Warnung entfernt (wobei die Standardeinstellung für date.timezone immer noch UTC ist).

add a note add a note

User Contributed Notes 1 note

up
0
Nicole Ama
8 years ago
Using "continue" outside of a loop or switch context throws a fatal error. Use "return" instead, if it makes sense to. Probably should have used return to begin with, but it never threw an error as of PHP 5.2. Not sure about later php 5.x versions.
To Top