PHP開発チームは11月23日、「PHP 8.3.0」の正式版をリリースしました(Phoronix)。PHP 8.3.0はPHPのメジャーバージョンアップ版として多数の新機能や改良が行われています。
Typed Class Constantsにより、クラス定数、インターフェイス定数、trait定数、enum定数が型宣言をサポートするようになり、C::{$name}
構文を使用して、クラス定数に動的にアクセスできるようになりました。匿名クラスを読み取り専用としてマークできるようになる機能や、親クラスまたは実装されたインターフェイスにメソッドが存在するかどうかをチェックする #[\Override]
属性の追加も行われています。
主な変更点は以下の通りです。
- Class constants can now be accessed dynamically with a new syntax addition.
- Implementing more appropriate date/time exceptions.
- Adding a json_validate() function for validating JSON.
- Implementing the #[\Override] attribute RFC to check that a method exists in a parent class or implemented interface.
- Updating the Zip extension and adding new set/get archive flag methods.
- The PHP POSIX support added posix_sysconf, posix_pathconf, posix_fpathconf, and posix_eaccess functions.
- A number of new PHP Sockets options.
- New features for the Randomizer class.
- Adding support for newer cURL options and constants up through cURL 7.87.
- Various new DOM methods added for DOM nodes and elements.
- Support for rounding negative places within the number_format() function.
- Support for zend_call_stack_get on OpenBSD platforms.
- Support for linting multiple files at once using the php -l option.
- Support for negative indices in arrays.
- upport for anonymous read-only classes.
- Support for typed class constants with class, interface, trait, and enum constants now supporting type declarations.
- Closures created from magic methods can now accept named arguments.
- The PHP CLI now supports linting multiple files.
- Implementing the STREAM_NOTIFY_COMPLETED notification for PHP streams.
- Many bug fixes and other improvements.