|
Posted by Michael Fesser on 07/22/07 17:59
..oO(Sanders Kaufman)
>OK - that seems to be where I went wrong. I thought the base class's
>constructor was automatically called when the extended class's was.
Nope.
>So, bottom line, what you're saying here is that when you extend a base
>class like this, you still have to manually call the base class's
>constructor? Zat right?
Correct. PHP doesn't do that automatically, except if the child class
doesn't have a constructor. Then PHP will call the one from the base
class, if it exists. But as soon as your child class uses its own
constructor, you have to manually call the parent one. Usually this
should be the first action.
In PHP 4 you have to use the name of the base class for that (if I
remember that correctly ;-), haven't used PHP 4 since years):
class TFoo extends TBar {
function TFoo {
parent::TBar();
...
}
}
In PHP 5 all constructors have the same name, so it would be just:
class TFoo extends TBar {
public function __construct() {
parent::__construct();
...
}
}
Micha
Navigation:
[Reply to this message]
|