ID: 49068
User updated by: simon+php at thulbourn dot com
Reported By: simon+php at thulbourn dot com
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 5.*, 6SVN (2009-07-26)
New Comment:
Sorry, the new test code was wrong, here's one that proves my point
$blah = "foo";echo $blah["frog"];
Previous Comments:
------------------------------------------------------------------------
[2009-07-27 10:20:06] simon+php at thulbourn dot com
Granted, I could have provided a better sample case so:
$a = array('foo');
// echo a index that doesn't exist
echo $a['bar'];
PHP should produce a notice claiming an undefined index 'bar', instead
it outputs the first char of the 0 index, in this case 'f', it's
obviously converting the string to a 0 instead of producing the
notice.)
------------------------------------------------------------------------
[2009-07-27 10:04:24] simon+php at thulbourn dot com
I believe that it should issue a warning rather than converting to an
integer.
It seems like a retarded action to convert the string to a 0, if I was
to use a numeric index that doesn't exist, I'd receive a notice. Some
consistency would be nice.)
------------------------------------------------------------------------
[2009-07-26 23:07:46] [email protected]
That has nothing to do with a foreach. The same effect can be seen
with:
$a = 'foo';
echo $a['bar'];
$a is a string which is essentially an array of characters with
numerical indices. Given that, 'bar' is converted to an integer, so you
end up with $a[0] which does exist, so no warning.
------------------------------------------------------------------------
[2009-07-26 22:09:07] simon+php at thulbourn dot com
Description:
------------
An array with no associative keys doesn't throw a notice or error when
one is used as an associative keyed array.
Reproduce code:
---------------
<?php
$array = array('foo', 'bar', 'baz');
foreach ($array as $a) {
echo $a['foo'];
}
?>
Expected result:
----------------
Notice: Undefined index
Actual result:
--------------
fbb
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49068&edit=1