Edit report at https://bugs.php.net/bug.php?id=61681&edit=1
ID: 61681 Updated by: ni...@php.net Reported by: larue...@php.net Summary: Malformed grammar -Status: Assigned +Status: Closed Type: Bug Package: *General Issues PHP Version: 5.3.10 -Assigned To: dmitry +Assigned To: nikic Block user comment: N Private report: N New Comment: This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. For Windows: http://windows.php.net/snapshots/ Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2012-04-09 17:21:56] col...@php.net Automatic comment on behalf of nikic Revision: http://git.php.net/?p=php-src.git;a=commit;h=b233de098daceb145b9a5009b8861ebb9df5c961 Log: Fix bug #61681: Malformed grammar ------------------------------------------------------------------------ [2012-04-09 15:58:25] col...@php.net 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 {. ------------------------------------------------------------------------ [2012-04-09 15:34:25] larue...@php.net Dmitry, do you think this is okey? or should we document this behavior? ------------------------------------------------------------------------ [2012-04-09 15:33:02] larue...@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