Le sam. 4 mai 2019 à 18:37, Marco Pivetta <ocram...@gmail.com> a écrit :

> Hi Steven,
>
> As it currently stands, the array cast is the only operation capable of
> exposing object state without triggering any kind of access guards: it is
> very much required for anything that works with reflection and typed
> properties, and possibly the only operation in PHP that operates on state
> without some contraption intercepting its execution.
>
> It is also necessary to distinguish dynamic properties from declared object
> state.
>
> For comparison, all of the following have side-effects due to the
> complexity of the language:
>
>  * isset()
>  * unset()
>  * property read
>  * property write
>  * ReflectionProperty#getValue()
>  * ReflectionProperty#setValue()
>
> Overall, this is problematic, and introduces more magic that I'd gladly
> avoid, in an endpoint used to work around all the engine magic (the only
> stable one so far).
>
> From my end, this sounds like a bad idea, because it removes one of the
> very very few referentially transparent guarantees (if not the only one,
> when dealing with objects) from the language.
>
> Greets,
>
> Marco
>

I want to weight in with what Marco expressed. I have the very same
concerns and they are major ones for many use cases. Mine is VarDumper.

Please don't do this the way it is described.

Nicolas

Reply via email to