この拡張モジュールのクラス/関数/メソッドには次のような変更がありました。
| Version | Function | Description |
|---|---|---|
| 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 を指定しても問題ありません。 |