Re: [RFC] Allow non-scalar keys in foreach
| From: | Derick Rethans | Date: | Tue, 19 Feb 2013 13:55:27 +0000 |
| Subject: | Re: [RFC] Allow non-scalar keys in foreach | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-65951@lists.php.net to get a copy of this message | ||
Gah, no top posting!
On Tue, 19 Feb 2013, Etienne Kneuss wrote:
> On Tue, Feb 19, 2013 at 2:25 PM, Derick Rethans <derick@php.net> wrote:
>
> > On Tue, 19 Feb 2013, Nikita Popov wrote:
> >
> > > This RFC proposes to remove the type-restrictions on Iterator keys
> > > used in foreach:
> > >
> > > https://wiki.php.net/rfc/foreach-non-scalar-keys
> > >
> > > I took over Levi's RFC and added a patch for it.
> >
> > Under "Open Questions" you write:
> >
> > > What should be done with the keys that are valid in the iterator,
> > > but not in the array? I think the best approach would be to just
> > > set the array keys with the exact same semantics as PHP would do
> > > (i.e. with all casts and warnings).
> >
> > Would __toString be called in case the key was an object?
> I think the warning can stay as-is, __toString is not necessarily
> available so casting to string in all occasions is probably not what
> we want.
I think it should cast to a string if possible. You are now making
iterator_to_array not work with the new feature, and I find that a bit
silly. Whether it should be __toString (or __toKey) I don't really care,
but this new support for objects should be supported everywhere (and
that includes iterator_to_array).
cheers,
Derick