#28899 [Com]: substr and mb_substr work different
ID: 28899
Comment by: drraf at tlen dot pl
Reported By: mauroi at digbang dot com
Status: Assigned
Bug Type: mbstring related
Operating System: *
PHP Version: 4CVS, 5CVS (2004-12-12)
Assigned To: moriyoshi
New Comment:
If mb_string() can overload substr() (when function overloading in on
when using mbstring) - in my opinion mb_substr() should be fixed.
Previous Comments:
------------------------------------------------------------------------
[2005-02-03 03:25:48] sniper@php.net
Whatever is the "logical" behaviour of the function, it doesn't really
matter: We will NOT change the behaviour of substr() at this point.
Thus the only place to change is mbstring.
------------------------------------------------------------------------
[2004-12-20 13:58:20] mauroi at digbang dot com
just to mention it... lot of code written with the mb_* function
overload relies on substr returning a zero length string... changing
substr to work like mb_substr won't break anything (i think)
------------------------------------------------------------------------
[2004-12-20 10:28:55] moriyoshi@php.net
The very nature of "substr" is that the function returns
the specified part of the string whenever the range is
valid and returns an error status if it is out of range.
If a null string is a valid string entity, then it
should be able to be referred to by index "0" and thus
the implementation returns a null string instead of
false. Or you would say this isn't really logical? :)
------------------------------------------------------------------------
[2004-12-15 04:19:11] sniper@php.net
The correct quote from up-to-date manual:
"If string is less than or equal to start characters long, FALSE will
be returned."
Notice the 'or equal' there?
Thus logically mb_substr() is buggy.
------------------------------------------------------------------------
[2004-06-23 22:12:57] moriyoshi@php.net
Good catch. Logically it seems substr() is wrong and mb_substr() is
correct.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/28899
--
Edit this bug report at http://bugs.php.net/?id=28899&edit=1
Thread (9 messages)