On Monday 11 September 2006 17:02, stephan beal wrote:
On Monday 11 September 2006 15:09, Leendert Meyer wrote:
The old mechanism should still work in php5. In fact, the name of the constructor is either the class name (old way), or the special name __constructor (new way). To me this seems only a name-change. Where does this brain-dead-ness come from?
The old mechanism does work but is deprecated and may give a warning. The brain-dead way is them renaming the ctor to __constructor(). This is against the convention of every programming language known to man. The argument for the change was "because you could break subclasses by renamig the parent class,
I think things could break if the parent class were renamed without renaming the constructor (with the same name), because the constructor would be called automatically if it has the same name as its class. Right?
so we make this impossible by making the paren't ctor name the same no matter what you call your class." That's a completely B.S. argument, though, because the "extends" statement still has to name the base class.
Of course. One would have to change the class name in the "extends" statement too.
So now it's possible to rename parent classes...
Yes, ...
and still break the child class when doing so.
Here I can't follow you. The child class would call parent::__construct() in its __construct(). In php4 that would be parent::<Parent_Class_Name>(). Renaming the parent breaks the child in the "extends" statement and the constructor in php4, and only the "extends" statement in php5. Right? Cheers, Leen