2016-06-10 14:39 GMT+02:00 Marco Pivetta <ocram...@gmail.com>: > As already mentioned on twitter, I voted "no" on this RFC as it currently > stands. I might reconsider if following points are addressed: > > 1. __get semantics are not changed: let __get behave like it usually does, > and let the user define a type hint on __get, should any be applicable. > Basically: > > class Foo > { > private int $bar = 123; > public function __get($name) { return 'banana'; } // *ALWAYS* works - > why would I even want a type error here? > } >
You want a type error if bar is unset, mainly because Foo->bar should always be an int. If you unset it and set it again, it still has to be an int. And reflection will tell you it's always an int. So why should __get be allowed to return something different? > * by-ref access should be enabled when the reference property has the same > declared type as the source one > > class Foo > { > public int $bar = 123; > } > > class Bar > { > public int $baz = 456; > public string $taz = 'taz'; > } > > $foo = new Foo; > $bar = new Bar; > > $bar->baz = & $foo->bar; // works > $bar->taz = & $foo->bar; // crashes > > Cheers, > > > Marco Pivetta > > http://twitter.com/Ocramius > > http://ocramius.github.com/ > > On 10 June 2016 at 12:38, Joe Watkins <pthre...@pthreads.org> wrote: > > > Afternoon internals, > > > > The vote for typed properties has been restarted. > > > > Please take part: https://wiki.php.net/rfc/typed-properties > > > > Cheers > > Joe > > >