Bug #71614 [Fbk]: echo "${str{1}}"; raises syntax error

From: Date: Fri, 19 Feb 2016 05:53:01 +0000
Subject: Bug #71614 [Fbk]: echo "${str{1}}"; raises syntax error
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-13198@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=71614&edit=1 ID: 71614 Updated by: yohgaki@php.net Reported by: yohgaki@php.net Summary: echo "${str{1}}"; raises syntax error Status: Feedback Type: Bug -Package: Scripting Engine problem +Package: Documentation problem Operating System: irrelevant PHP Version: Irrelevant Block user comment: N Private report: N New Comment: Thanks. I didn't think of $$. We may improve the doc http://jp2.php.net/manual/en/language.types.string.php {$} for variable expression, ${} for variable name resolution and few more examples invalid expressions. Previous Comments: ------------------------------------------------------------------------ [2016-02-18 23:07:50] stas@php.net Not sure I understand - where's the bug in here and what would you expect to happen? str{1} is not a valid token for variable name, and is not a valid string offset operation since str is not variable - $str is. ------------------------------------------------------------------------ [2016-02-18 03:54:26] yohgaki@php.net @nikic Deprecating ${} is possible resolution. One concern is ${} is common in shell scripting languages. https://www.gnu.org/software/bash/manual/bashref.html ------------------------------------------------------------------------ [2016-02-17 09:57:52] nikic@php.net This "bug" is best solved by deprecating the ${} interpolation syntax for non-expressions. ------------------------------------------------------------------------ [2016-02-17 04:34:32] yohgaki@php.net Description: ------------ Both ${var} and {$var} are supposed to work, but ${$var} raises syntax error. Test script: --------------- php > $str = 'abc'; php > echo "${str{1}}"; PHP Parse error: syntax error, unexpected '{' in php shell code on line 1 php > echo "{$str{1}}"; b ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=71614&edit=1

« previous php.doc.bugs (#13198) next »