Alex,

On Fri, 2015-03-20, at 17:19, Alex Bowers wrote:

> When you say restrict to one each. Do you mean one for strings and one for
> arrays?

Yes, that's what I mean. I would propose square brackets for array offsets,
and curly braces for strings.

> If so I'd have to disagree with this, since having the same operation
> available to both is less likely to give mistakes. Can you give an example
> of an actual benefit for this? Since this would cause a backwards
> incompatible change. I can't imagine many places if any use the curly
> brackets for arrays or strings, but since it exists there may be people
> using it. Changing the behaviour of this to only work for one of the two
> options seems unnecessary in the name of making code slightly more
> apparent on initial reading. But variable names and so on should be used
> to help distinguish from array or strings anyway.

Yes, I'm very conscious of the substantial BC break, which is why I would
target PHP 8 (or even 9, following a deprecation cycle). I guess you and I
disagree on the benefits of syntax that is more self-documenting. The vast
majority of PHP developers don't use variable names to indicate data types;
the only common convention I've seen is for arrays' names to be pluralized
(ie. $items, $rows etc.), but this doesn't really help. Often when less-
experienced developers come across code that uses subscript syntax on a
variable, they typically assume that the variable is an array (since string
offsets are so much less common), and in doing so, introduce bugs. If the
use of curly-braces was mandatory for string offsets, then code like this
couldn't be mistaken for anything else.

Vik


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to