その他の変更PHP コアクロージャクロージャの名前が調整され、親関数の名前と 定義の行番号を含むようになりました。これにより、 スタックトレース内などでの識別が容易になります。 ファイバー(Fibers)デストラクタ実行中にファイバーを切り替えられるようになりました。 以前はガベージコレクションとの競合のためブロックされていました。 デストラクタは別のファイバー内で実行される場合があります。 ガベージコレクションがファイバー内でトリガーされると、 GC によって呼び出されるデストラクタは 別のファイバー(gc_destructor_fiber)内で実行されます。 このファイバーが中断された場合、残りのデストラクタを実行するために 新しいファイバーが作成されます。 以前の gc_destructor_fiber は GC によって参照されなくなり、 他に参照されていなければ回収される可能性があります。 デストラクタが中断されたオブジェクトは、 デストラクタが戻るか Fiber が回収されるまで回収されません。 出力ハンドラ
ob_start の
output_add_rewrite_var は、
リライトされるホストを選択するために
SAPI モジュールへの変更apache2handlerEOLを迎えた Apache 2.0 および 2.2 のサポートが削除されました。 最小必要 Apache バージョンは 2.4 になりました。 CLI組み込みサーバーは、指定されたファイルが見つからない場合、 親ディレクトリをたどってインデックスファイルを再帰的に探します。 このプロセスは、パスがファイルを指しているように見える場合 (最後のパスコンポーネントにピリオドが含まれる場合)はスキップされていました。 その場合、404 エラーが返されていました。 この動作は、すべての場合にインデックスファイルを探すように変更されました。 FPM本文なしでヘッダをフラッシュできるようになりました。 ステータスページにメモリの最大使用量を表示するフィールドが追加されました。
Solaris/Illumos 用の /dev/poll 変更された関数PHP コアtrigger_error および user_error は、戻り値の型が bool ではなく true になりました。 DOM
DOMDocument::registerNodeClass
は、戻り値の型が bool ではなく true になりました。
実際には常に Hash
hash_update
は、戻り値の型が bool ではなく true になりました。
実際には常に Intl
ResourceBundle::get
は、戻り値の型が
idn_to_ascii および idn_to_utf8
関数は、
idn_to_ascii および idn_to_utf8
関数は、 LibXMLlibxml_set_streams_context は、 非ストリームコンテキストリソースが関数に渡された場合、 ストリームコンテキストが使用されるときではなく、 直ちに TypeError をスローするようになりました。 MBStringmb_strcut の動作は、 無効な UTF-8 および UTF-16 文字列に対してより一貫性のあるものになりました。 有効な UTF-8 および UTF-16 文字列に対する動作の変更はありません。 ODBC
odbc_fetch_object、
odbc_fetch_array、および
odbc_fetch_into の
OpenSSL
openssl_csr_new の
openssl_csr_new の
openssl_csr_sign に新たに
openssl_x509_parse で ASN.1 UTCTime を解析する際、
OpenSSL バージョン 3.2 未満では秒が省略されていると失敗します
(そのようなフィールドでは PDO
PDO::getAttribute で
PDO_FIREBIRD
PDO::getAttribute で
トランザクションの分離レベルとアクセスモードを指定するための新しい属性が追加されました。 この機能のため 5 つの定数が追加されました:
永続的な接続を使用する場合、コンストラクタ内での生存チェックが追加されました。
ビルドされる内容は、
ibase.h 内の
5 つの新しいデータ型が利用可能になりました:
PDO_MYSQL
PDO::getAttribute で
PDO_PGSQL
カラムが PGSQL
pg_select の Phar
POSIXposix_isatty は、 ファイル記述子/ストリーム引数が無効な場合エラー番号を設定するようになりました。 ReflectionReflectionGenerator::getFunction は、ジェネレータの実行が終了した後でも呼び出すことができるようになりました。 Sockets
socket_create_listen の
Sodiumsodium_crypto_aead_aes256gcm_* 関数は、ARM 暗号化拡張を持つ aarch64 CPU で 利用可能になりました。 SPL
SplObjectStorage は SeekableIterator を実装するようになりました。 Standard
debug_zval_dump は、配列がパックされているかどうかを示すようになりました。
long2ip は、戻り値の型が
highlight_string は、戻り値の型が
print_r は、戻り値の型が
round による丸め処理
round 関数の
round 関数に 4 つの新しいモードが追加されました:
整数への丸めのための内部実装が、正確さの検証と
メンテナンスの容易さのために書き直されました。
その結果、いくつかの丸め処理のバグが修正されました。
例えば、以前は
round 関数の「事前丸め」によるバグが修正されました。
以前は、「事前丸め」により
round が処理できる最大精度が
1桁増えました。
例えば、 拡張モジュールへのその他の変更cURL最小必要 libcurl バージョンは 7.61.0 になりました。
GMP
GMP オブジェクトを bool に
キャストできるようになりました。以前は LibXML最小必要 libxml2 バージョンは 2.9.4 になりました。 IntlIntl クラスの動作が統一され、 初期化されていないオブジェクトを使用しようとした場合やクローンに失敗した場合に、 Error 例外をスローするようになりました。 MBStringUnicode データテーブルが Unicode 16.0 に更新されました。 MySQLndMySQL 9 の新しい VECTOR データ型のサポート。 OpenSSL最小必要 OpenSSL バージョンは 1.1.1 になりました。 PDO_PGSQL最小必要 libpq バージョンは 10.0 になりました。 PGSQL最小必要 libpq バージョンは 10.0 になりました。 SPLSplFixedArray での範囲外アクセスは、 RuntimeException ではなく OutOfBoundsException 型の例外をスローするようになりました。 OutOfBoundsException は RuntimeException の子クラスであるため、 これらの例外をキャッチしようとする際の動作に変更はありません。 XSL型付きプロパティ XSLTProcessor::$cloneDocument および XSLTProcessor::$doXInclude が定義されました。 Zlib最小必要 zlib バージョンは 1.2.11 になりました。 パフォーマンスPHP コアZTS ビルドにおける高負荷の並行処理環境下で、 浮動小数点数の解析とフォーマットのパフォーマンスが向上しました。 これは printf 系の関数や json_encode、serialize などのシリアライズ関数に影響します。
BCMath数値の変換と演算のパフォーマンスが向上しました。 DOMDOMNode::C14N のパフォーマンスが、 xpath クエリなしの場合に大幅に向上しました。 これは数万ノードのドキュメントで簡単に 2 桁の 時間改善をもたらします。 XML シリアライズのパフォーマンスが向上し、メモリ消費が削減されました。 ノードクラスのメモリ使用量が削減されました。 FTP大きなアップロードで FTP アップロードのパフォーマンスが 最大 10 倍向上しました。 HashSHA-256 の SSE2 および SHA-NI 実装が追加されました。 これにより、サポートされている CPU でのパフォーマンスが SSE2 で最大 1.3 倍、 SHA-NIで 3から 5 倍向上します。 この最適化は Colin Percival / Tarsnap の功績です。 MBStringmb_strcut は UTF-8 および UTF-16 文字列で大幅に高速になりました。 mbstring のエンコーディング名の検索が大幅に高速になりました。 SJIS-win から Unicode への変換のパフォーマンスが大幅に向上しました。 MySQLndMySQLnd のクオートのパフォーマンスが向上しました。 PCRE名前付きキャプチャグループのパフォーマンスが向上しました。 RandomRandom\Randomizer のパフォーマンスが向上しました。 特に Random\Randomizer::getBytes と Random\Randomizer::getBytesFromString メソッドで顕著です。 SimpleXMLXML シリアライズのパフォーマンスが向上し、メモリ消費が削減されました。 Standardstrspn および strcspn の パフォーマンスが大幅に向上しました。 二乗時間ではなく、線形時間で実行されるようになりました。 strpbrk のパフォーマンスが向上しました。 get_browser は大幅に高速になり、 いくつかのテストケースで最大 1.5 倍から 2.5 倍の速度向上を実現しました。 |