Bug #19140 [Com]: foreach fails on empty or unitialized variable
| From: | mail at waclawjacek dot com | Date: | Sat, 01 Sep 2012 15:45:59 +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-173091@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 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.
Previous Comments:
------------------------------------------------------------------------
[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.
------------------------------------------------------------------------
[2002-08-28 05:11:43] jc at mega-bucks dot co dot jp
What is the documented/expected behaviour for foreach on "null" arrays?
PHP has not problems with statements such as:
echo "$a";
So I don't see why it should have a problem with:
foreach ($a as $val) {};
Actaully I *do* understand why it is a problem :) I just would like it to suggest that foreach be
able to handle null arrays. It would be *such* a nice feature ;)
------------------------------------------------------------------------
[2002-08-28 04:48:58] jc at mega-bucks dot co dot jp
$a is an unitialized variable. It is not an empty variable ($a = "").
It is declared but not initialized. It has no value since the function returns nothing.
The problem is that PHP cannot tell that $a is supposed to be an array since $a has no value or
content whatsoever.
------------------------------------------------------------------------
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