Re: [RFC] Generalize support of negative string offsets
| From: | François Laupretre | Date: | Mon, 01 Feb 2016 17:21:42 +0000 |
| Subject: | Re: [RFC] Generalize support of negative string offsets | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-91047@lists.php.net to get a copy of this message | ||
Le 31/01/2016 23:14, Stanislav Malyshev a écrit :
Hi!Yes, authorizing array-related '[]' syntax on strings may look fine at first sight, but it only brings some unwanted ambiguity for no real benefit. And ambiguity increases with the support of negative string offsets. So, I just added a chapter to the RFC, saying that documentation would be modified to recommend using the '{}' syntax for string offsets. Regards FrançoisThe only concern I have is that support of negative indexing will break symmetry with (proper) arrays, where we cannot support negative indexing.I think that was the main source of objections to this proposal in the past. However, as one might say, string offsets are already not symmetrical to array offsets - e.g. you can do $array["foo"] but not $string["foo"].However this is unlikely to be a significant issue. (I do however play with the thought of reutilizing the obsolete {} indexing syntax to act as offset indexing instead.)I think it may be a good idea to start recommending using {} for string offsets and [] for arrays. While both syntaxes may work for strings, the intent (and expected handling of negatives, in this case) is much clearer when different syntax is used.