Richard Quadling wrote:
> (Not E_STRICT) If error_reporting does not include E_STRICT, then
> unset()'ting properties defined in interfaces is allowed and operates
> exactly as it does on normal variables and for properties defined in
> classes. Whilst this may break the contract, this is what currently
> happens and for the sake of BC (until a better solution is found), we
> leave things alone. Personally, I think the potential new feature of
> properties defined in interfaces should not be allowed to be unset.
> But I'm looking at what I want with this and I hope that the following
> text allows it.
> 
> (E_STRICT) If error_reporting does include E_STRICT, then unset()'ting
> properties defined in interfaces is not allowed and triggers an
> E_STRICT error.

We don't need this distinction: If you unset a property and access it
afterwards you get an E_NOTICE so it can already be detected.

And introducing different semantics depending on E_*-modes opens up
another can of worms a la ini settings: Writing an application
compatible with all different modes becomes a PITA.

I agree with Stas here: Theoretical OO purism (I yet have to be shown
code misbehaving with the current implementation) should not lead to
artificial restrictions and/or code changes with BC breaks.

- Chris

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to