We are talking only about unsettling of typed properties
________________________________ From: guilhermebla...@gmail.com <guilhermebla...@gmail.com> Sent: Wednesday, April 13, 2016 16:08 To: Dmitry Stogov Cc: Nikita Popov; Stanislav Malyshev; internals; Joe Watkins; Zeev Suraski Subject: Re: [PHP-DEV] Re: Typed properties patch Hi, Unsetting properties is used by a range of libraries I am aware of, including Doctrine (actually any project that relies on proxy generation). Breaking this "feature" would be a catastrophe to a lot of projects. There is an alternative though, which would help: property getter/setter would not only address the unsetting hack, but also allow read only properties (final properties). IMHO, we should look back at that implementation (it was mainly rejected because of the patch complexity (not the idea), which would kill two birds with one stone. Cheers, On Apr 13, 2016 2:59 AM, "Dmitry Stogov" <dmi...@zend.com<mailto:dmi...@zend.com>> wrote: On 04/13/2016 07:33 AM, Stanislav Malyshev wrote: Hi! Thanks for your time reviewing the patch, appreciated. > 1) nullable properties I agree that we need a way to that, but I would rather see it covered by nullable types rfc. I think this is an attempt to achieve more type safety than even fully typed languages like Java, and it will only get in the way in PHP. > 3) disable unset This sounds very weird. Why I would suddenly unable to unset a property? Because if you unset() a property it's type is not guaranteed anymore. <?php class Foo () { int $a = 0; } $a = new Foo(); $b = $a->x + 5; /* we know $a->x is "int" and may use optimized code */ unset($a->x); $b = $a->x + 5; /* $a->x is not "int" any more and we can't use optimized code */ ?> As we can't be sure where the property may be unset(), we won't be able to use optimized code at all (even in first place). Thanks. Dmitry. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php