From: Michael L. <mla...@ca...> - 2009-02-20 23:15:41
|
Arlo, I've run into that and though it's annoying, I think it's part of the "desired behavior" for the function. >From php.net/explode "If delimiter contains a value that is not contained in string , then explode() will return an array containing string" So, since your string doesn't contain a "|" is returns the "array" of an empty string. Make sense? -----Original Message----- From: Arlo Leach [mailto:ar...@ar...] Sent: Friday, February 20, 2009 3:00 PM To: Chicago PHP User Group Subject: [chiPHPug-discuss] troublesome PHP behavior Hi folks, Consider the following PHP code, which explodes an empty string: $string = ""; $array = explode("|", $string); print_r($array); print "Length: ".count($array); I would expect this to output an empty array: Array ( ) Length: 0 But it actually outputs: Array ( [0] => ) Length: 1 Does anyone else find this odd? It has bitten me a few times lately, when I test the existence of data with a count(), or try to process data with a FOR loop. I end up writing this a lot to get the expected results: $array = ($string) ? explode(",", $string) : array() ; I was considering logging a bug report but wondered what your thoughts were. Cheers, -Arlo _______________________________ Arlo Leach 773.769.6106 http://arlomedia.com ------------------------------------------------------------------------ ------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ chiPHPug-discuss mailing list chi...@li... https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss |