Bug #19140 [Com]: foreach fails on empty or unitialized variable
| From: | mail at waclawjacek dot com | Date: | Sat, 01 Sep 2012 15:54:56 +0000 |
| Subject: | Bug #19140 [Com]: foreach fails on empty or unitialized variable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-173093@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=19140&edit=1
ID: 19140
Comment by: mail at waclawjacek dot com
Reported by: jc at mega-bucks dot co dot jp
Summary: foreach fails on empty or unitialized variable
Status: Not a bug
Type: Bug
Package: Arrays related
Operating System: Red Hat Linux 7.2
PHP Version: 4.2.2
Block user comment: N
Private report: N
New Comment:
I found this idea somewhere on the net, thanks, it's pretty neat, still, it was a
surprise to find out this is how foreach() behaves after years of using while()
to loop through an array of database results.
Previous Comments:
------------------------------------------------------------------------
[2012-09-01 15:51:49] rasmus@php.net
Often that points to a bug. If you are ok with it, just cast it. No need for an
is_array() check. eg.
foreach( (array)$a as $val ) ...
------------------------------------------------------------------------
[2012-09-01 15:45:59] mail at waclawjacek dot com
I second jc. It would be nice not to have to do if ( is_array() ) before every
foreach(), like you don't have to with while(), when the variable is null.
------------------------------------------------------------------------
[2002-08-28 05:41:03] derick@php.net
FYI: I clearified this in the manual, it will show up in a few days online.
Derick
------------------------------------------------------------------------
[2002-08-28 05:32:48] jc at mega-bucks dot co dot jp
Neglectful coding? Why do you consider it neglectful coding if I do this for an array but good
coding for a string? PHP treats null strings as empty strings, why doesn't it do the same for
arrays?
All I want to know is, what is the documented behaviour for foreach on a null array. If there is no
documented behaviour, let's add to the documentation. Something like:
"foreach will fail on an unitialized (null) array".
I had assumed that since PHP is usually treats null strings as empty strings it would do the same
with null arrays. I was wrong. I tried to find documentation on what foreach will do in the case of
a null array and could not find any.
I agree with you that this is neglectfull coding. It would be nice if there was documentation to
back it up :)
------------------------------------------------------------------------
[2002-08-28 05:17:20] cynic@php.net
if you insist on neglectful coding, lower your error_reporting level.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=19140
--
Edit this bug report at https://bugs.php.net/bug.php?id=19140&edit=1