Bug #13912 Updated: Array index references inside double quotes cause parse errors
| From: | cnewbill@php.net | Date: | Fri, 02 Nov 2001 22:53:35 +0000 |
| Subject: | Bug #13912 Updated: Array index references inside double quotes cause parse errors | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69549@lists.php.net to get a copy of this message | ||
ID: 13912
Updated by: cnewbill
Reported By: dshearin@e-clecticity.net
Old Status: Open
Status: Bogus
Bug Type: Arrays related
Operating System: Redhat Linux - Kernel 2.4.12
PHP Version: 4.0.6
New Comment:
RTM
http://www.php.net/manual/en/migration4.strings.php
-Chris
Previous Comments:
------------------------------------------------------------------------
[2001-11-02 17:38:38] dshearin@e-clecticity.net
A parse error results when an increment or decrement operator is used in an array index that falls
between double quotes.
For example:
<?
$a = array(1 => "un", "deux", "trois", "quatre",
"cinq");
$i = 1;
while ($i < 5) echo "Number $i is $a[$i++]<br />";
?>
Yields -> Parse error: parse error, expecting `']'' in public_html/testarray.php
on line 4
While this works fine:
while ($i < 5) echo "Number $i is ". $a[$i++] ."<br />";
I think this is part of a larger issue of resolving references inside quoted array indexes. It seems
an error occurs whenever using an index that's anything more complicated than a literal value
or a simple variable.
For example, given a function returnNumber() that simply returns whatever number you pass to it,
this line produces a parse error:
echo "Number 2 is $a[returnNumber(2)]<br />";
While this one prints out the translation for the number 2, as expected:
echo "Number 2 is ".$a[returnNumber(2)]."<br />";
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13912&edit=1