Michael Virnstein wrote:

>>> 2. final classes:
>>> final classes can't be extended
>>
>>
>> already supported
>
>
>
> Cannot find it in the docs.
> http://www.php.net/manual/en/language.oop5.final.php doesn't seem to have
> any comments on that.
> I'm not at home at the moment, so i couldn't try, but are you really sure
> that final CLASSES are supported?
> You're not confusing it with final METHODS, right?
>
[EMAIL PROTECTED]:~> php -r 'final class a{} class b extends a{}'

Fatal error: Class b may not inherit from final class (a) in Command line code on line 
1



>
> A good example for a static class imo, would be e.g. PEAR's DB Class. The
> DB-Class itself doesn't need to be instantiate,
> it simply works as factory and has some functions to check stuff. that'd be
> a class that i would define as
> "final static class DB {}". The class should not be extended and should not
> containt non static methods or attributes. Sure it isn't
> a big deal, if ppl are instantiating the DB Class, but it only has static
> methods and instantiating it wouldn't make any sense.
>
Make the constructor private and the class final. No instance will be available,
and no inheritance possible. Methods has to work, and therefore they may not
expect to have $this available in them.

Andrey

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



Reply via email to