Skip to content

mb_substr returns a different value in PHP 8.4 #12972

@MauricioFauth

Description

@MauricioFauth

Description

The following code:

<?php
var_dump(bin2hex(mb_substr(hex2bin("8964"), 0, 1)));
var_dump(mb_substr('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dapibus feugiat ex non cursus. Pellentesque vestibulum tellus sit lectus.', 19, -1));

Resulted in this output:

string(2) "3f"
string(109) "it amet, consectetur adipiscing elit. Vestibulum dapibus feugiat ex non cursus. Pellentesque vestibulum tellu"

But I expected this output instead:

string(2) "89"
string(121) "it amet, consectetur adipiscing elit. Vestibulum dapibus feugiat ex non cursus. Pellentesque vestibulum tellus sit lectus"

https://3v4l.org/KZrMo
https://3v4l.org/KZrMo/rfc#vgit.master

https://3v4l.org/B0sf5
https://3v4l.org/B0sf5/rfc#vgit.master

PHP Version

PHP 8.4 cffdeb8 (This is the commit I tested, not necessarily the one that introduced the issue.)

Operating System

Debian Trixie

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions