Re: [RFC][Vote] Typed Properties
| From: | Niklas Keller | Date: | Thu, 26 May 2016 07:32:45 +0000 |
| Subject: | Re: [RFC][Vote] Typed Properties | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-93550@lists.php.net to get a copy of this message | ||
2016-05-26 7:00 GMT+02:00 Stanislav Malyshev <smalyshev@gmail.com>:
> Hi!
>
> > Also, property access never was safe. Consider:
> >
> > $obj = new class {
> > public $foo;
> > function __construct() {
> > unset($this->foo);
> > }
> > function __get($prop) {
> > throw new Exception("No $prop for you today!");
> > }
> > };
> > var_dump($obj->foo); // exception.
>
> This is different. Your code throws exception purposefully so you intend
> something to break here - you might as well just written exit(1) and
> said there's no safe code at all since you could exit at any moment.
> That's not what I mean. I mean that operation that was previously not
> prone to fatal errors just because of variable holding some value would
> now produce such errors - not because the user wrote code to
> specifically do that but because of hidden properties of the engine. If
> the engine would by itself insert such code as above into user classes
> that would be dangerous too but of course it does not.
>
> >
> > isset() checks will continue to work.
>
> For some definition of "work" - since it would return false for null
> values, but null values are actually OK.
If there's a function to check it, how would you handle it? It's clearly a
programming mistake.
> It's just about getting a *value*. (and to check whether it's a typed
> property, there's Reflection support in the RFC.)
>
> You don't propose using Reflection before each variable access I
> presume. Reflection is useless in runtime scenario.
>
> --
> Stas Malyshev
> smalyshev@gmail.com
>