Skip to content

Fix GH-1132: Document mb_strlen invalid encoding behavior change in P…#5418

Open
GabrielCordeiroBarrosoTeles wants to merge 2 commits intophp:masterfrom
GabrielCordeiroBarrosoTeles:fix-gh-1132-mb-strlen-invalid-encoding-changelog
Open

Fix GH-1132: Document mb_strlen invalid encoding behavior change in P…#5418
GabrielCordeiroBarrosoTeles wants to merge 2 commits intophp:masterfrom
GabrielCordeiroBarrosoTeles:fix-gh-1132-mb-strlen-invalid-encoding-changelog

Conversation

@GabrielCordeiroBarrosoTeles

Fixes #1132

Documents that passing an invalid encoding to mb_strlen() had undefined behavior before PHP 8.0 (could return false) and that as of PHP 8.0 a ValueError is thrown instead, as suggested in the issue discussion.

<entry>8.0.0</entry>
<entry>
Passing an invalid encoding now throws a
<classname>ValueError</classname>. Previously, the return value was
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use <exceptionname>ValueError</exceptionname> instead.

And Previously, &false; was returned. makes more sense here since prior to 8.0, false was always returned on error.

https://github.com/php/php-src/blob/PHP-7.4.33/ext/mbstring/mbstring.c#L2503

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, @jordikroon . Switched to <exceptionname>ValueError</exceptionname> and updated to "Previously, &false; was returned." to match the PHP 7.4 source. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Providing an incorrect encoding to mb_strlen returns false before PHP 8.0

2 participants