$a = [1,2,$b[11]];

Is that confusing enough for you? ;-)



What's confusing about it?



The fact that $b[11] references an item of an array, while [1,2,$b[11]] assigns values to the array $a. The fact that you (and, probably, most of us) can't tell right off the bat is a clear sign that this is a bad idea, because it's ambiguous and confusing.


The same line using the current syntax, btw, would have looked like this:

$a = array (1,3,$b[11]);
Actually, $a = [1,2,$b[11]] would be amazingly clear and expressive in comparison with the rather verbose array() version (same thing with the swap, btw).

BTW, remember the alternative range syntax [a..b] I mentioned before? If you consider Markus Boegers (sp?) iterators extension, wouldn't it be top cool to have [a..] syntax, too (yielding an iterator)? And have versions of map/filter/reduce support iterators, too? :) Well, just thinking out loud, you remember ;)

As you can see the ambiguity is gone--square brackets are used for one purpose and nothing else.
Actually, do you realize that you use () both for "grouping" and for application? I can't see anything wrong with using square brackets for array element access and array creation, to be honest.

Cheers,
Michael

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



Reply via email to