Bug #13912: Array index references inside double quotes cause parse errors
| From: | dshearin at e-clecticity dot net | Date: | Fri, 02 Nov 2001 22:38:39 +0000 |
| Subject: | Bug #13912: Array index references inside double quotes cause parse errors | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-69548@lists.php.net to get a copy of this message | ||
From: dshearin@e-clecticity.net
Operating system: Redhat Linux - Kernel 2.4.12
PHP version: 4.0.6
PHP Bug Type: Arrays related
Bug description: Array index references inside double quotes cause parse errors
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 bug report at: http://bugs.php.net/?id=13912&edit=1