Skip to content

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

Open
GabrielCordeiroBarrosoTeles wants to merge 2 commits into
php: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 into
php:masterfrom
GabrielCordeiroBarrosoTeles:fix-gh-1132-mb-strlen-invalid-encoding-changelog

Conversation

@GabrielCordeiroBarrosoTeles
Copy link
Copy Markdown

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.

Comment thread reference/mbstring/functions/mb-strlen.xml Outdated
@lacatoire
Copy link
Copy Markdown
Member

lacatoire commented Mar 24, 2026

Hi, i checked in php-src and the ValueError for invalid encodings comes from php_mb_get_encoding() (commit [21227dc1f19](php/php-src@21227dc1f19e
a9007ecfc6929261f16900359c4d), which is shared across many most functions, not just mb_strlen.

Currently only mb_convert_encoding and mb_encoding_aliases document this 8.0.0 change. Would it make sense to extend this PR to cover the other functions as well?

@kamil-tekiela
Copy link
Copy Markdown
Member

@lacatoire is right. This change was done to multiple functions and such such should be documented consistently. php/php-src@90eeca2#diff-28e30bf65ac518b331e0315af123e060f35e9053d7c05b68b5bcbcd1be080ba4

Since the change was already documented in one place, all you need to do is take it out and put it into a new snippet (language-snippets.ent) and then use that snippet for all the changed functions. Both the Errors/Exceptions and Changelog sections need to be adjusted.

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

4 participants