Hello Stephane,

Thursday, January 22, 2004, 3:48:19 PM, you wrote:

> PHP implements an "stdClass". I expected that:
> * this was the base class for all classes, even if they do not explicitly "extends 
> stdClass",

nope, there is absolutely no reason for that

> * this class implemented all the "standard" methods (__construct(), __destruct(), 
> ...).

all __* are magic functions they must not exist and are not meant to be
called directly (which seems to be your problem). It is just easy: never
call a __* method directly with the exception neing __clone() which works
slightly different.

> In the PHP5 presentation, it is mentionned the interest of unified
> constructors. Currently it is not possible to call parent::__construct()
> if the class does not derived from another one, or none of its parent
> implements a constructor.

Well you design a class tree/framework and should know what you have done.
If not use reflection.

> Another problem: when you change a class implementation and decide to
> now implement a constructor, you have to review all its derived classes.
> Which finally limits the benefit of unified constructors.

A change is a change.

> I think all classes should be derived from a common base class
> (stdClass or a new dedicated one), even if it's not explicitly written.
> This base class should also implement all the standard methods:

[...]

That would slow down execution ***very*** much and makes absolutely no
sense at all. If you want a base class for your classes do it. Fell free.
Do implement whatever classtree/framework you whish to have. But don't
misuse internal classes.


-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]

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

Reply via email to