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