On Wed, Mar 15, 2017 at 4:33 PM, Marco Pivetta <ocram...@gmail.com> wrote:
> It's the only way to distinguish between set and unset properties. Also the > only way to get all properties from an instance of an inheritance tree. > Also, it's covered by tests that were explicitly added to prevent > regressions on this. > > Same as all similar discussions before this one: need an alternative way to > do things before proposing a BC break. > > As mentioned in previous mails - the intent isn't to change existing behaviour, but to provide a way for a class to override the default behaviour. As long as those classes you are casting to array don't implement __toArray they will behave exactly as they always have. The only concern then, is that you might be relying on a library to not implement that function on a class you are casting. > On 15 Mar 2017 11:27 p.m., "Kalle Sommer Nielsen" <ka...@php.net> wrote: > > > Hi > > > > 2017-03-15 21:41 GMT+01:00 Marco Pivetta <ocram...@gmail.com>: > > > This is a BC break due to the fact that the `(array)` cast is used to > > > extract property information from private properties in library code. > > > > Yep, but then again that is more of an > > undocumented-not-really-supported case afair, if anything then > > Reflection should have the APIs to officially allow that, although I > > am still skeptic of this. > > > > > > -- > > regards, > > > > Kalle Sommer Nielsen > > ka...@php.net > > >