Bug #67750 [Opn]: Subscript Operator claims empty brackets invalid for string

From: Date: Sun, 03 Aug 2014 02:36:39 +0000
Subject: Bug #67750 [Opn]: Subscript Operator claims empty brackets invalid for string
References: 1  Groups: php.standards 
Request: Send a blank email to standards-+get-272@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67750&edit=1 ID: 67750 Updated by: stas@php.net Reported by: ralph-bugsphpnet at inputplus dot co dot uk Summary: Subscript Operator claims empty brackets invalid for string Status: Open Type: Bug Package: PHP Language Specification PHP Version: Irrelevant Block user comment: N Private report: N New Comment: "" is a tricky case because in this case $a is converted to array. So strictly speaking [] is not applied to a string, it applies to an array, to which empty string is auto-converted. Previous Comments: ------------------------------------------------------------------------ [2014-08-02 16:16:45] ralph-bugsphpnet at inputplus dot co dot uk Description: ------------ https://github.com/php/php-langspec/blob/master/spec/10-expressions.md#subscript-operator says *expression* can be omitted only if *subscript-expression* is used in a modifiable-lvalue context and *postfix-expression* does not designate a string. Yet this is valid: $a = ""; $a[] = "y"; var_dump($a); I've omitted expression, postfix-expression is a string, just an empty one. The result is array("y"); the original empty string disappears. See http://3v4l.org/vg7Oe for more. Test script: --------------- <?php $a = ""; $a[] = "y"; var_dump($a); $b = "x"; $b[] = "y"; var_dump($b); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=67750&edit=1

« previous php.standards (#272) next »