- プロパティフック、非対称可視性、更新された DOM API、パフォーマンス向上、バグ修正、および全般的な整理を含む
- IDE と静的解析ツールがネイティブに理解できる計算プロパティをサポートするプロパティフックを提供
- プロパティの読み取りと書き込みのスコープを独立して制御できる非対称可視性を導入。
- 新機能
#[\Deprecated] 属性により、ユーザー定義関数、メソッド、クラス定数に PHP の既存の非推奨メカニズムを適用可能。
- 新しい DOM API は、HTML5 ドキュメントの解析における標準準拠サポートを含み、DOM 機能の複数の古い互換性バグを修正。
BcMath\Number オブジェクトを使用して、任意精度の数値をオブジェクト指向で処理可能。
array_find(), array_find_key(), array_any(), array_all() などの新しい配列関数を提供。
- PDO の新しいサブクラス
Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite を提供。
- 新しくインスタンス化されたオブジェクトのプロパティとメソッドに括弧なしでアクセス可能。
- 新しいクラス、インターフェース、および関数
- 新しい Lazy Objects、IR Framework ベースの JIT 実装。
request_parse_body() 関数、bcceil(), bcdivmod(), bcfloor(), bcround() 関数を追加。
DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond() などのメソッドを追加。
mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst() 関数を追加。
pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid() 関数を追加。
ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic() メソッドを追加。
http_get_last_response_headers(), http_clear_last_response_headers(), fpow() 関数を追加。
XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory() メソッドを追加。
grapheme_str_split() 関数を追加。
- 非推奨と互換性の破壊的変更
- IMAP、OCI8、PDO_OCI、pspell 拡張機能がバンドルから削除され、PECL に移行。
- 暗黙的に nullable なパラメータ型が非推奨に。
- クラス名としての
_ の使用が非推奨に。
- 0 を負のべき乗にすることが非推奨に。
- 無効なモードを
round() に渡すと ValueError が発生。
- 拡張機能のクラス定数が型付きに。
- GMP クラスが
final に指定。
- MYSQLI 関連の定数と関数が非推奨に。
stream_bucket_make_writeable() と stream_bucket_new() が StreamBucket インスタンスを返すように変更。
exit() の動作を変更。
E_STRICT 定数が非推奨に。
- パフォーマンスおよび構文の改善
- パフォーマンス向上、構文改善、型安全性向上。
- PHP 8.4 へのアップグレードを推奨。
3件のコメント
WordPress と Laravel のおかげで、少なくとも飢え死にはしない言語
WordPressやLaravelが衰退しても、食いっぱぐれない言語です。
Hacker Newsのコメント
$this->countryCodeが無限再帰を引き起こさない理由は RFC に明記されている。PHP のプロパティアクセスが文脈によって異なる意味を持ちうる点は、魔法のように感じられる。PHP プログラマーとして、PHP の方向性が心配だ。新しい言語機能が、疑わしい利益のために言語の複雑さを高めている。
PHP が今なお繁栄していることをうれしく思う。2021 年には Nikita Popov の離脱で心配したが、PHP は今でも良い言語で、多くの開発者が活発に活動している。
プロパティフックに最も期待している。C# で恋しかった機能だ。
__get()と__set()を使って似たことをしていたが、これは重く、多くの PHPDoc コメントが必要だった。配列アクセサのオーバーロードを見ていて "Property Hooks" を見つけた。最近追加された機能だと知って驚いた。
PHP の新しいリリースに満足している。クロージャのより良いスタックトレース、性能改善、HTML5 サポート、レイジーオブジェクトなど、多くの改善が行われている。
bcmath オブジェクトに期待している。算術演算子そのものよりも、ラッパークラスなしでデータ型チェックができるようになった点がよい。
PHP が今なお進化していることをうれしく思う。フリーランスとして始めた頃の記憶がよみがえる。
PHP の新しい
array_find関数は、言語設計の問題を示している。既存のarray_searchと似ているが、引数の順序が異なる。"public private(set)" が理解できない。"readonly public" のほうが適切に見える。
private(set)に似ているようだ.