Bug #61681 [Asn]: Malformed grammar

From: Date: Mon, 09 Apr 2012 15:58:25 +0000
Subject: Bug #61681 [Asn]: Malformed grammar
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-169362@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=61681&edit=1 ID: 61681 Updated by: colder@php.net Reported by: laruence@php.net Summary: Malformed grammar Status: Assigned Type: Bug Package: *General Issues PHP Version: 5.3.10 Assigned To: dmitry Block user comment: N Private report: N New Comment: This is typically a limitation of our grammar. We accept ${ string_varname } and ${ expr } due to the fact that ${asd} is not accessing the variable named after the constant asd's value. When the lexer looks at ${ function_call() } it finds ${ T_STRING_VARNAME() } which will not parse. We might be able to fix it by looking ahead in the <ST_LOOKING_FOR_VARNAME>{LABEL} { rule and detect cases where it should be a T_STRING, i.e if the char after it is either } [ or {. Previous Comments: ------------------------------------------------------------------------ [2012-04-09 15:34:25] laruence@php.net Dmitry, do you think this is okey? or should we document this behavior? ------------------------------------------------------------------------ [2012-04-09 15:33:02] laruence@php.net Description: ------------ if use '@', you can call function in a string substitution context. Test script: --------------- <?php $la = "ooxx"; $a = "${@substr('laruence', 0, 2)}"; echo $a; Expected result: ---------------- PHP Error: syntax error Actual result: -------------- ooxx ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=61681&edit=1

« previous php.bugs (#169362) next »