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
