Am 14.11.2024 um 22:27 schrieb Gina P. Banyard <[email protected]>:
> Agreed, this bites us constantly when needing to reason about what an
> "object" is in PHP.
> Similar to array it mixes the concept of a struct, with that of a reference
> value, and "overloading" various behaviours (e.g. iterators and ArrayAccess).
> It is *extremely* simple to go from foreach ($object as $prop) {} to
> forearch(get_object_vars($object) as $prop) {}
> and mandating this would resolve a lot of complexity, be that from the
> perspective of what is "possible" or not to do, and from an engine PoV.
Is there (currently) a difference between
foreach ($obj ...)
and
foreach (get_object_vars($obj) ...)?
If there is then the migration is not always "extremely" simple, no?
If there isn't then we can simply define that from now on the former is
equivalent to the second one and ignore future changes to visibility, hooks etc.
My main point is that over the last years a lot of (for our code unnecessary)
complexity was added but I hardly complained because other people have other
needs. I just ask for similar consideration in return when stripping stuff.
Regards,
- Chris