#40531 [Opn]: mb_substr optional parameters
| From: | emwebdev at hotmail dot com | Date: | Sun, 18 Feb 2007 08:18:24 +0000 |
| Subject: | #40531 [Opn]: mb_substr optional parameters | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-109071@lists.php.net to get a copy of this message | ||
ID: 40531
User updated by: emwebdev at hotmail dot com
Reported By: emwebdev at hotmail dot com
Status: Open
Bug Type: mbstring related
Operating System: Windows XP
PHP Version: 5.2.1
New Comment:
Apologies, reproduce code should be as follows:
var_dump(mb_substr('foobar', 3));
var_dump(mb_substr('foobar', 3, null));
Expected and actual results are the same.
Thanks
Previous Comments:
------------------------------------------------------------------------
[2007-02-18 08:15:58] emwebdev at hotmail dot com
Description:
------------
Hi there
I'm not sure if the following is intended functionality or a bug, but
I've tried many forums etc. and been unable to get an answer.
When you use mb_substr() and omit the third argument (length), the
function returns all characters from the start index to the end of the
string.
This is fine unless you want to specify the character encoding
explicitly as the fourth argument. This forces you to supply the length
argument also.
It would seem logical that passing null for the length argument would
make mb_substr() behave the same as if it had been omitted, but this is
not the case.
Passing null as the length argument to mb_substr() (or substr() itself
for that matter) will produce an empty string every time.
This means that to achieve the same functionality displayed when the
length argument is omitted, you have to calculate the remaining string
length yourself which is no doubt much less efficient.
Thanks for your time,
Erin
Reproduce code:
---------------
var_dump(substr('foobar', 3));
var_dump(substr('foobar', 3, null));
Expected result:
----------------
'bar' (length=3)
'bar' (length=3)
Actual result:
--------------
'bar' (length=3)
'' (length=0)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40531&edit=1