Edit report at https://bugs.php.net/bug.php?id=62461&edit=1
ID: 62461 User updated by: php dot net at pravec dot de Reported by: php dot net at pravec dot de Summary: error in explode Status: Not a bug Type: Bug Package: Strings related Operating System: debian PHP Version: 5.3.14 Block user comment: N Private report: N New Comment: i know ... php is not vbscript. but take this a = "" For Each b in Split(a, ":") Call MsgBox(b) Next a can contain "1", "1:2", or "" if a is "1" a single popup will appear if a is "1:2" two popup will appear if a is "" no popup will appear if string is empty, counting explode have to return 0, not 1 nothing divided by something will return: nothing ... not 1 Previous Comments: ------------------------------------------------------------------------ [2012-07-02 03:01:16] ahar...@php.net Quoting the manual: "If delimiter contains a value that is not contained in string and a negative limit is used, then an empty array will be returned, otherwise an array containing string will be returned." This is the second case: the delimiter isn't in the string, so an array containing the string is returned. Not a bug -> closing. ------------------------------------------------------------------------ [2012-07-02 02:16:19] php dot net at pravec dot de Description: ------------ --- >From manual page: >http://www.php.net/function.explode#refsect1-function.explode-description --- Test script: --------------- $a = explode("\r\n", ""); $b = fixed_explode("\r\n", ""); printf("(%d/%d)", count($a), count($b)); function fixed_explode($delimiter, $string, $limit = 0xFFFFFFFF) { return($string ? explode($delimiter, $string, $limit) : array()); } Expected result: ---------------- result will be (1/0) but should be (0/0) it's on you to fix this. i guess this must be an error. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62461&edit=1