ID:               47971
 User updated by:  cscott at ggot dot org
 Reported By:      cscott at ggot dot org
 Status:           Open
 Bug Type:         Feature/Change Request
 Operating System: Irrelevant
 PHP Version:      5.2.9
 New Comment:

For Relevancy: I do not believe that namespaces solve this problem, as

__autoload does not work with namespaces (and, for obvious reasons, 
shouldn't).


Previous Comments:
------------------------------------------------------------------------

[2009-04-14 21:07:14] cscott at ggot dot org

Description:
------------
Fairly simple: A developer is allowed to define his/her classes as
abstract or final, but not as static.  For continuity's sake, it would
be preferable to be able to declare classes as static as well.  This
would greatly ease the creation of static function
collections/libraries, especially those included with __autoload().

When a class is declared as abstract, it is a statement at the open
that this is an incomplete member; you can specify any method inside a
class to be abstract and the class is effectively abstract, yet this
keyword is allowed in the class declaration.

When a class is declared final, it is a statement at the open that all
members are to be considered final, and that this class should not be
extended any further.

By allowing classes to be declared as static, it would follow with
allowing "abstract class foo" in the sense that the keyword reflects the
contents of the class, and would follow with "final class foo" in that
it would define a binding construct for all members of the class.

Whether
a) In a static class, all methods and members are automatically static
-OR-
b) In a static class, all methods and members must be declared static
Is surely not for me to decide -- either is useful, as it either forces
me to ensure all members are static, or it does the legwork for me.  As
such, I make no suggestion and defer to the wisdom of the developer(s).

Thank you for your consideration.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=47971&edit=1

Reply via email to