Re: Making stdClass iterable
| From: | Rowan Collins | Date: | Mon, 14 Jan 2019 15:08:49 +0000 |
| Subject: | Re: Making stdClass iterable | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-103734@lists.php.net to get a copy of this message | ||
On Mon, 14 Jan 2019 at 15:00, Nikita Popov <nikita.ppv@gmail.com> wrote:
> The way I see it, stdClass is basically an array in object notation (and
> object passing semantics). It carries data in the form of key value pairs
> and has no associated logic. The only things you can do with it are access
> keys (properties) and ... iterate over them.
>
> [...] But now that we do have it, and with the way it is typically being
> used, I think it's fully appropriate to iterate over it.
>
I think it's the assumption about "the way it is typically being used"
where I differ from you. I generally see stdClass being used where people
want to access specific keys using -> notation, and maybe to get the
pass-by-pointer semantics. I'm not convinced that iterating over it as an
ordered collection is a sufficiently universal use case that it should be
an exception to the proposed rule of "objects aren't iterable unless
iteration logic has been defined".
I can see it might be convenient occasionally, but it feels like an
unnecessary special case, on top of a feature which I agree should be
discouraged anyway.
Regards,
--
Rowan Collins
[IMSoP]