PHP 8.4.1 Released!

新機能

PHP コア

readonly 機能の修正

無名クラスも、readonly としてマークできるようになりました。

読み取り専用プロパティは、clone している間に再初期化できるようになりました。

クラス定数に対する型宣言

クラス、インターフェイス、トレイト、そして列挙型の定数は、新たに型宣言をサポートするようになりました。

マジックメソッドで作ったクロージャ

マジックメソッドで作ったクロージャは、名前付き引数を受け入れるようになりました。

トレイトのメソッドに対する final 指定

トレイトからメソッドを使う場合に、そのメソッドに対して final を指定できるようになりました。

Override アトリビュート

親クラスまたは実装済みのインターフェイス内で、メソッドが存在するかを調べるアトリビュートとして、#[\Override] が追加されました。

クラス定数への動的なアクセス構文

クラス定数は、C::{$name} という構文で動的にアクセスできるようになりました。

static 変数の初期化

static 変数を初期化する際に、任意の式が使えるようになりました。

INI 変数に対するデフォルト値指定

ini ファイル内で、デフォルト値を指定する文法をサポートしました。

<?php
/*
/path/to/user.ini に、以下の設定が含まれているとします:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/
$user_ini = parse_ini_file('/path/to/user.ini');
echo
$user_ini['listen']; // localhost:9000

CLI

複数のファイルの文法チェックを、一度にできるようになりました。

DOM

プロパティ DOMElement::$className と、DOMElement::$id が追加されました。libxml2 の制限により、現時点でこれらはバイナリセーフではありません。つまり、プロパティの値から NUL バイト以降が切り捨てられるということです。

プロパティ DOMNode::$isConnectedDOMNameSpaceNode::$isConnected が追加されました。

プロパティ DOMNode::$parentElementDOMNameSpaceNode::$parentElement が追加されました。

FFI

FFI\CData を他の FFI\CData に代入できるようになりました。つまり、CData を構造体やフィールドに代入できるようになったということです。

Opcache

opcache_get_status()['scripts'][n]['revalidate'] の値に、いつスクリプトの更新チェックを行うかの予定が Unix タイムスタンプの形で含まれるようになりました。いつチェックを行うかは、opcache.revalidate_freq によって決まります。

POSIX

posix_getrlimit() で、リソースの制限値をひとつ取得できる、オプションの $resource パラメータが使えるようになりました。

posix_isatty() は、通常のパラメータ解釈のセマンティクス(ZPP) に従い、整数値に対して警告を発生させるようになりました。

posix_ttyname() は、通常のパラメータ解釈のセマンティクス(ZPP) に従い、整数値に対して警告を発生させるようになりました。さらに、無効なファイルディスクリプタの整数値に対しても、警告を発生させるようになっています。

Streams

以前のバージョンでは実装されていなかった新しい通知として、STREAM_NOTIFY_COMPLETED が発生させられるようになりました。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top