#21820 [Ctl]: bc break in parser

From: Date: Thu, 13 Feb 2003 19:04:40 +0000
Subject: #21820 [Ctl]: bc break in parser
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-33074@lists.php.net to get a copy of this message
ID: 21820 Updated by: gschlossnagle@php.net Reported By: george@omniti.com Status: Critical Bug Type: Scripting Engine problem PHP Version: 4.3.0 New Comment: I still maintain that the patch I posted is the right way to solve the problem. $a['b'] is the 'correct' way to access an associative array outside of a quoted section, it should at least be allowed inside double quotes. This encourages consisitency within the language. Previous Comments: ------------------------------------------------------------------------ [2003-02-13 12:52:17] philip@php.net Marking as critical. This is a serious bug as it's subtle and confuses newbies, especially when they/we try to use autoglobals in strings. This bug fix really needs to make it into 4.3.1 ------------------------------------------------------------------------ [2003-01-22 20:28:56] george@omniti.com This bug appeared in 4.3.0 as a result of the lexer changes added to ZE1 and ZE2 in november to speed up variableinterpolation in strings. Previous to 4.3 this was valid: echo "$a[b]"; but echo "$a['b']"; generated a parse error. The bug manifests itself by turning this parse error into a non-sensical E_NOTICE error. The patch 'fixes' the bug by making echo "$a['b']"; work, which has been a pending feature request and seems nice (to me), or at least harmless. ------------------------------------------------------------------------ [2003-01-22 19:53:20] sniper@php.net Anyone remember in what version of PHP this did work? :) Correct (?) way to do this is: <?php $arr = array('foo' => 'bar'); print "{$arr['foo']}"; ?> Or at least I've started to use that just because of this bug. ------------------------------------------------------------------------ [2003-01-22 13:56:01] philip@php.net Point was, maybe there is a reason this was not implemented. And btw, this is a bug as 'foo' is defined yet the error says it's not. ------------------------------------------------------------------------ [2003-01-22 13:45:54] george@omniti.com this patch fixes that feature request/bug as well ------------------------------------------------------------------------ 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 http://bugs.php.net/21820 -- Edit this bug report at http://bugs.php.net/?id=21820&edit=1

« previous php.bugs (#33074) next »