# 変更履歴

この拡張モジュールのクラス/関数/メソッドには次のような変更がありました。

Version | Function | Description
--- | --- | ---
8.5.0 | chr | [0, 255] の範囲外の整数を渡すことは非推奨になりました。
| ord | シングルバイトではない文字列を渡すことは非推奨になりました。
| setlocale | locales 引数に整数 0 を渡すことはサポートされなくなり、 TypeError がスローされるようになりました。
8.4.0 | str_getcsv | escape のデフォルト値に依存することは、 非推奨になりました。
| str_getcsv | separator、enclosure、 または escape が不正な場合、 ValueError をスローするようになりました。 これは、fgetcsv と fputcsv の動作に倣ったものとなります。
| strcspn | PHP 8.4.0 より前のバージョンでは、 characters が空の文字列の場合、 string 内の最初の null バイトで探索が誤って停止してしまうことがありました。
8.3.0 | number_format | decimals に負の値を指定した場合の処理が追加されました。
| str_getcsv | 最後のフィールドが、 閉じられていないフィールド囲いこみ文字だけの場合、 null バイト 1 つの文字列ではなく、空文字列を返すようになりました。
| strrchr | before_needle が追加されました。
| strtok | token が渡されない場合、E_WARNING が発生するようになりました。
8.2.0 | lcfirst | ケース変換は、setlocale で設定されたロケールに依存しなくなりました。 ASCII 文字のみが変換されます。
| str_ireplace | ケースフォールディングは、setlocale で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。
| str_split | string が空の場合、 空の配列が返されるようになりました。 これより前のバージョンでは、空文字列がひとつ入った配列が返されていました。
| strcasecmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| strcmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| stripos | ケースフォールディングは、setlocale で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。
| stristr | ケースフォールディングは、setlocale で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。
| strnatcasecmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| strnatcmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| strncasecmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| strncmp | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| strripos | ケースフォールディングは、setlocale で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。
| strtolower | ケース変換は、setlocale で設定されたロケールに依存しなくなりました。 ASCII 文字のみが変換されます。
| strtoupper | ケース変換は、setlocale で設定されたロケールに依存しなくなりました。 ASCII 文字のみが変換されます。
| substr_compare | この関数は、2つの文字列の長さが等しくない場合に strlen($string1) - strlen($string2) を返すとは限らなくなりました。 代わりに、-1 や 1 を返す可能性があります。
| ucfirst | ケース変換は、setlocale で設定されたロケールに依存しなくなりました。 ASCII 文字のみが変換されます。
| ucwords | ケース変換は、setlocale で設定されたロケールに依存しなくなりました。 ASCII 文字のみが変換されます。
| utf8_decode | この関数は、推奨されなくなりました。
| utf8_encode | この関数は、推奨されなくなりました。
8.1.0 | get_html_translation_table | flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。
| html_entity_decode | flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。
| htmlentities | flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。
| htmlspecialchars | flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。
| htmlspecialchars_decode | flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。
8.0.0 | convert_cyr_string | この関数は削除されました。
| convert_uuencode | これより前のバージョンでは、 空文字列を変換しようとすると、特別な理由がないのに false を返していました。
| count_chars | これより前のバージョンでは、この関数は失敗時に false を返していました。
| crypt | salt は、オプションではなくなりました。
| explode | 引数 separator に空文字列 ("") を渡した場合、 ValueError をスローするようになりました。 それより前のバージョンでは、 explode は false を返していました。
| fprintf | この関数は、失敗時に false を返さなくなりました。
| fprintf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| fprintf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| fprintf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| fprintf | 引数が必要な数より少なかった場合、 ArgumentCountError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| hebrevc | この関数は削除されました。
| html_entity_decode | encoding は、nullable になりました。
| htmlentities | encoding は、nullable になりました。
| implode | array の後に separator を渡すことは、サポートされなくなりました。
| levenshtein | これより前のバージョンでは、 引数を2個、または5個指定して呼び出さなければなりませんでした。
| levenshtein | これより前のバージョンでは、 引数文字列の一つが 255 文字の制限より長い場合に -1 を返していました。
| metaphone | この関数は、失敗時に false を返さなくなりました。
| money_format | この関数は削除されました。
| number_format | これより前のバージョンでは、 number_format 関数は 引数を1個、2個、または4個受け入れていました(つまり、3個はダメでした)。
| parse_str | result は、オプションではなくなりました。
| printf | この関数は、失敗時に false を返さなくなりました。
| printf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| printf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| printf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| printf | 引数が必要な数より少なかった場合、 ArgumentCountError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| soundex | これより前のバージョンでは、 空文字列をこの関数に渡すと、特別な理由がないのに false を返していました。
| sprintf | この関数は、失敗時に false を返さなくなりました。
| sprintf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| sprintf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| sprintf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| sprintf | 引数が必要な数より少なかった場合、 ArgumentCountError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| str_split | length が1より小さい場合、 ValueError がスローされるようになりました。 それより前のバージョンでは、 E_WARNING レベルの警告が発生し、 false を返していました。
| str_word_count | characters は、nullable になりました。
| strcspn | length は、nullable になりました。
| strip_tags | allowed_tags は、nullable になりました。
| stripos | needle は、空文字列を受け入れるようになりました。
| stripos | needle に数値を渡すことはサポートされなくなりました。
| stristr | needle は、空文字列を受け入れるようになりました。
| stristr | needle に数値を渡すことはサポートされなくなりました。
| strpos | needle は、空文字列を受け入れるようになりました。
| strpos | needle に数値を渡すことはサポートされなくなりました。
| strrchr | needle は、空文字列を受け入れるようになりました。
| strrchr | needle に数値を渡すことはサポートされなくなりました。
| strripos | needle は、空文字列を受け入れるようになりました。
| strripos | needle に数値を渡すことはサポートされなくなりました。
| strrpos | needle は、空文字列を受け入れるようになりました。
| strrpos | needle に数値を渡すことはサポートされなくなりました。
| strspn | length は、nullable になりました。
| strstr | needle は、空文字列を受け入れるようになりました。
| strstr | needle に数値を渡すことはサポートされなくなりました。
| substr | length は、nullable になりました。 length に明示的に null を設定すると、 文字列の最後までを含む部分文字列を返すようになっています。 これより前のバージョンでは、空文字列を返していました。
| substr | この関数は、前のバージョンで false を返す場合に、空文字列を返すようになりました。
| substr_compare | length は、nullable になりました。
| substr_count | length は、nullable になりました。
| substr_replace | length は、nullable になりました。
| vfprintf | この関数は、失敗時に false を返さなくなりました。
| vfprintf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vfprintf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vfprintf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vfprintf | 引数が必要な数より少なかった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vprintf | この関数は、失敗時に false を返さなくなりました。
| vprintf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vprintf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vprintf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vprintf | 引数が必要な数より少なかった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vsprintf | この関数は、失敗時に false を返さなくなりました。
| vsprintf | 引数の数が0だった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vsprintf | [width] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vsprintf | [precision] の値が0より小さかったり、 PHP_INT_MAX より大きい場合に、 ValueError をスローするようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| vsprintf | 引数が必要な数より少なかった場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、代わりに E_WARNING を発生させていました。
| wordwrap | break が空文字列の場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、 E_WARNING が発生し、false を返していました。
7.4.0 | chr | codepoint に対して、 サポートされていない入力が与えられた場合、 黙って0 にキャストする動作をしなくなりました。
| convert_cyr_string | この関数は推奨されなくなりました。
| hebrevc | この関数は推奨されなくなりました。
| implode | array の後に separator を渡すこと (つまり、古いシグネチャを使うこと) は、推奨されなくなりました。
| money_format | この関数は推奨されなくなりました。 代わりに、NumberFormatter::formatCurrency を使ってください。
| str_getcsv | escape 引数は、 空文字列を、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構を無効にするシグナルとして解釈するようになりました。 これより前のバージョンでは、空文字列はデフォルト値のように扱われていました。
| strip_tags | allowed_tags は、array も受け入れるようになりました。
7.3.5 | substr_compare | offset の値は、 haystack の長さと等しくても問題なくなりました。
7.3.0 | stripos | needle に数値を渡すことは非推奨になりました。
| stristr | needle に数値を渡すことは非推奨になりました。
| strpos | needle に数値を渡すことは非推奨になりました。
| strrchr | needle に数値を渡すことは非推奨になりました。
| strripos | needle に数値を渡すことは非推奨になりました。
| strrpos | needle に数値を渡すことは非推奨になりました。
| strstr | needle に数値を渡すことは非推奨になりました。
7.2.18 | substr_compare | offset の値は、 haystack の長さと等しくても問題なくなりました。
7.2.0 | number_format | number_format は、 -0 を返さないように変更されました。 これより前のバージョンでは、 num が -0.01 のようなケースで -0 が返される場合がありました。
| parse_str | parse_str関数を 第二引数を指定せずに使うと E_DEPRECATED レベルの警告が発生するようになりました。
| utf8_decode | この関数は、XML拡張モジュールから PHP のコアに移動しました。 これより前のバージョンでは、 この関数は XML拡張モジュール をインストールしていた場合にのみ利用可能でした。
| utf8_encode | この関数は、XML拡張モジュール から PHP のコアに移動しました。 これより前のバージョンでは、 この関数は XML拡張モジュール をインストールしていた場合にのみ利用可能でした。
7.1.0 | str_shuffle | 内部的なランダム化アルゴリズムは、 libc の rand 関数ではなく、 メルセンヌツイスタ 乱数生成器を使うように 変更されました
| stripos | 負の offset をサポートするようになりました。
| strpos | 負の offset をサポートするようになりました。
| substr_count | 負の offset と length をサポートするようになりました。 length は、0 を指定しても問題ありません。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open