From: Brian Shire Date: Sat, 27 Dec 2008 05:15:51 +0000 (+0000) Subject: MFH: fix explode behavior to respect negative limit when string is empty. X-Git-Tag: php-5.3.0beta1~368 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4141cc424579f0668ac760c60d9e5938f1a4c41;p=php MFH: fix explode behavior to respect negative limit when string is empty. --- diff --git a/ext/standard/string.c b/ext/standard/string.c index d3a6fdffd8..8e85045f66 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -1018,7 +1018,9 @@ PHP_FUNCTION(explode) array_init(return_value); if (! Z_STRLEN_PP(str)) { - add_next_index_stringl(return_value, "", sizeof("") - 1, 1); + if (limit >= 0 || argc == 2) { + add_next_index_stringl(return_value, "", sizeof("") - 1, 1); + } return; } diff --git a/ext/standard/tests/strings/explode.phpt b/ext/standard/tests/strings/explode.phpt index 6d54b66090..1047fb7856 100644 --- a/ext/standard/tests/strings/explode.phpt +++ b/ext/standard/tests/strings/explode.phpt @@ -17,6 +17,7 @@ var_dump(@explode("a", NULL)); var_dump(@explode(NULL, a)); var_dump(@explode("abc", "acb")); var_dump(@explode("somestring", "otherstring")); +var_dump(@explode("somestring", "otherstring", -1)); var_dump(@explode("a", "aaaaaa")); var_dump(@explode("==", str_repeat("-=".ord(0)."=-", 10))); var_dump(@explode("=", str_repeat("-=".ord(0)."=-", 10))); @@ -63,6 +64,8 @@ array(1) { [0]=> string(11) "otherstring" } +array(0) { +} array(7) { [0]=> string(0) ""