クラスやインターフェイスそしてトレイトの内部で、 プロパティや定数そしてメソッドの名前にグローバルな予約語を使えるようになりました。 これで、今後新たなキーワードが導入された場合でも下位互換性を維持しやすくなります。 そして、API の命名の制約も軽減できるでしょう。
これは、流れるようなインターフェイスを用いた内部 DSL を作る際などに便利です。
<?php
// 'new', 'private', 'for' は、これまでなら使うことができませんでした
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>
唯一の例外は class
キーワードで、このキーワードを定数名として使うことはできません。
これを許してしまうと、クラス名の解決に使う構文
(ClassName::class
) と衝突してしまうからです。
これまでのバージョンでは、INI 項目
date.timezone
を設定せずに日付・時刻関連の関数を使おうとすると、警告が発生していました。
PHP 7 では、この警告は発生しなくなりました
(date.timezone
のデフォルトは、これまでどおり UTC です)。