On Tue, Mar 19, 2019, at 7:10 PM, Robert Hickman wrote: > > > Why not apply the same approach to PHP? There is iterator_to_array() to > > > convert a generator to an array, so we may not need both syntaxes. > > > However, I think using [] for something that is *not an array* is > > > counter-intuitive. > > > > No, I would definitely be for []-syntax producing an array. As I said, > > that's in my experience what people usually want. > > > > In python comprehensions on [] makes a list and comprehensions in {} > make a dictionary (list and dict comprehensions). As PHP only has one > 'array' type using [] makes sense. Along that train of thought, should > comprehensions also be possible in the old array() syntax?
Honestly, I cannot think of any case where I'd use a comprehension where I would definitely want an array and not a generator. In the majority case both work equally well, cool, but I don't know when I would even use an array-dependent version. And converting from a generator to an array is trivial; the other way, very not so much. > Does the proposal include comprehensions which build associative > arrays? In python you can do {a['key'] : a for a in lst}, where lst is > a list of dicts. I often use this to create a dictionary whose keys > index a sub-element of a nested dictionary, as my example shows. The proposal as written, yes, you can produce values or keys-and-values. I would still love feedback on possible alternative syntaxes, per my earlier email. --Larry Garfield -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php