|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2016-02-16 18:27 UTC] asylow at free dot fr
Description: ------------ In a double quoted string, an array index beginning with numbers followed by letters is not correctly interpreted. The documentation regarding Nowdocs says : "With array indices, the closing square bracket (]) marks the end of the index." but the parser seems to stop at the first alpha character. Of course this can be treated with the "Complex (curly) syntax" but "1a" is not more complex than "a1". Test script: --------------- $array['a1'] = 'foo'; echo "$donnees[a1]"; // foo $array['1a'] = 'foo'; echo "$donnees[1a]"; // Parse error: syntax error, unexpected 'a' (T_STRING), expecting ']' Expected result: ---------------- foo foo Actual result: -------------- Parse error: syntax error, unexpected 'a' (T_STRING), expecting ']' PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 03:00:01 2025 UTC |
This may be fixed, but working syntax is echo "${array['1a']}"; or echo "{$array['1a']}"; You should use {} for complex expression. We need improvement for string offset, though. php > echo "${str{1}}"; PHP Parse error: syntax error, unexpected '{' in php shell code on line 1 php > echo "{$str{1}}"; b