Bug #71614 [Fbk]: echo "${str{1}}"; raises syntax error
| From: | yohgaki@php.net | 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