ID:               48035
 Updated by:       [email protected]
 Reported By:      Bjorn dot Wiberg at its dot uu dot se
 Status:           To be documented
 Bug Type:         Strings related
 Operating System: Debian 5.0.1, IBM AIX 5.3
 PHP Version:      5.2.9
 New Comment:

A negative limit reduces the size of the resultant array.

So explode('_', 'test') returns a single entry.

A limit of -1 essentially throws that entry away.

The documentation may be better if it said :

"If delimiter contains a value that is not contained in string and a 
negative limit is used, then an empty array will be returned. For any 
other limit, an array containing string will be returned."





Previous Comments:
------------------------------------------------------------------------

[2009-04-21 12:21:03] [email protected]

.

------------------------------------------------------------------------

[2009-04-21 11:19:00] Bjorn dot Wiberg at its dot uu dot se

Description:
------------
It appears that explode() returns an empty array (instead of an array
with string in it) if limit is negative and delimiter contains a value
that is not contained in string.

The documentation of explode()
(http://www.php.net/manual/en/function.explode.php, section "Return
Values") however states that "If delimiter contains a value that is not
contained in string, then explode() will return an array containing
string", which then does not hold for negative limits.

Reproduce code:
---------------
<?php 
  print_r(explode('_', 'test', -1));
  print_r(explode('_', 'test_underscore', -1));

  print_r(explode('_', 'test'));
  print_r(explode('_', 'test_underscore'));
?>

Expected result:
----------------
Array
(
    [0] => test
)
Array
(
    [0] => test
)
Array
(
    [0] => test
)
Array
(
    [0] => test
    [1] => underscore
)

Actual result:
--------------
bwib...@musica-lp02:~$ php -n -f test.php 
Array
(
)
Array
(
    [0] => test
)
Array
(
    [0] => test
)
Array
(
    [0] => test
    [1] => underscore
)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=48035&edit=1

Reply via email to