ID: 28899
Updated by: [EMAIL PROTECTED]
Reported By: mauroi at digbang dot com
-Status: Analyzed
+Status: Assigned
-Bug Type: Strings related
+Bug Type: mbstring related
-Operating System: All
+Operating System: *
-PHP Version: Irrelevant
+PHP Version: 4CVS, 5CVS (2004-12-12)
-Assigned To:
+Assigned To: moriyoshi
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[2004-06-23 22:12:57] [EMAIL PROTECTED]
Good catch. Logically it seems substr() is wrong and mb_substr() is
correct.
------------------------------------------------------------------------
[2004-06-23 21:21:51] mauroi at digbang dot com
Description:
------------
if I make the following call I get FALSE.
var_dump(substr('', 0));
The documentation says "If string is less than start characters long,
FALSE will be returned".
That can be very ambiguous because start is 0 and the length of the
string is 0 (not less).
Another problem: mb_substr does not work like this. If you overload
the
functions and make the same call as above it will return an empty
string.
Thanks in advance.
Reproduce code:
---------------
var_dump(substr('', 0));
var_dump(mb_substr('', 0));
Expected result:
----------------
''
''
Or
FALSE
FALSE
Actual result:
--------------
FALSE
''
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28899&edit=1