iterable 型は、コンパイル時に組み込みで
array|Traversable のエイリアスと見なされるようになりました。
よって、iterable
に関連するエラーメッセージは、
array|Traversable
のものが使われるようになります。
型のリフレクションは、単一の iterable
(および ?iterable
) については
iterable
という名前が付いた ReflectionNamedType を生成しますが、
union 型の中で iterable
を使った場合、
array|Traversable
に変換されます。
送信される Cookie の日付フォーマットが 'D, d M Y H:i:s \G\M\T'
になりました。
これより前のバージョンでは 'D, d-M-Y H:i:s T'
でした。
STDOUT, STDERR, STDIN ストリームは、リソースが破棄される時にクローズされなくなりました。 これらのクローズは、ほとんどの場合 CLI が終了する際に行われます。 しかし、fclose() や類似の関数を使うことで、これらのストリームを明示的に閉じることはできます。
バイナリセーフな文字列比較を行う
strcmp(), strcasecmp(),
strncmp(), strncasecmp(),
substr_compare() は、
-1
, 0
, 1
を返すようになりました。
dba_open() と dba_popen() は、以下のシグネチャを強制するようになりました:
$path
,$mode
,$handler
= null
,$permission
= 0644,$map_size
= 0,$flags
= null
dba_fetch() のオプションの skip 引数は、 PHP でユーザーが使える関数のセマンティクスに従い、最後に置かれるようになりました。 シグネチャは以下になります:
オーバーロードされたシグネチャは下記のとおりです: 上記は、引き続き許可されていますが、新しい標準的なシグネチャを使うことを推奨します。random_bytes() と random_int() は、CSPRNG が失敗した場合に \Random\RandomException をスローするようになりました。 これより前のバージョンでは、\Exception がスローされていました。
iterator_to_array() と iterator_count()
の iterator
引数の型が
Iterator から iterable に拡張され、
配列を渡せるようになりました。
DatePeriod のプロパティが、適切に宣言されるようになりました。
IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone, Transliterator のインスタンスは、シリアライズできなくなりました。 これより前のバージョンでは、シリアライズはできていましたが、 アンシリアライズした際に役に立たないオブジェクトを生成したり、失敗したりしていました。
libmysql のサポートが削除されました。 よって、libmysql を使って mysqli をビルドすることはもはやできません。 このバージョンからは、 mysqli 拡張モジュールは mysqlnd を使った場合にのみコンパイルできます。 以下に示す、mysqlnd で利用できない、libmysql のすべての機能が削除されました:
MYSQLI_IS_MARIADB
は、推奨されなくなりました必須となる Oracle Client library の最低バージョンが、11.2 になりました。
パターン文字列中の NUL 文字 (\0
) がサポートされるようになりました。
セッションがアクティブだったり、出力が既に送信された後に session.cookie_samesite を変更しようとすると、変更が失敗するとともに、警告が発生するようになりました。 この変更は、他のセッション関連の INI 設定の振る舞いに合わせたものです。
sqlite3.defensive の変更可能範囲が、INI_USER
になりました。
getimagesize() は、AVIF 画像の ビット数、チャンネル情報、幅と高さの情報(dimensions) を返すようになりました。 これより前のバージョンでは、幅と高さの情報は 0x0 として報告され、ビット数とチャンネル情報は全く報告されていませんでした。
Zip 拡張モジュールは、1.20.0 にアップデートされました。 以下のメソッドが追加されています:
INI ファイルに数値を設定する際、
2進数のプレフィックス (0b
/0B
)
および、8進数のプレフィックス (0o
/0O
)
を指定する機能がサポートされました。
INI ファイルに数値を設定する際に値をゼロ (0
) から始めた場合、
引き続き8進数の数値として解釈されます。
設定項目によっては、不正な値をパースした場合に警告が発生するようになりました。 これより前のバージョンでは、静かに無視されていました。 後方互換を保つため、値を解釈する方法は変更されていません。 影響を受ける設定は、以下のとおりです: