Inherit Methods
| From: | Norbert Wenzel | Date: | Mon, 08 Aug 2005 12:22:39 +0000 |
| Subject: | Inherit Methods | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-220215@lists.php.net to get a copy of this message | ||
Is it possible to run inherited methods in the scope of the child class? In my case I have an abstract class called 'Company' and some child classes. There is a non abstract function in 'Company' which prints '$this->phoneList'. That function should be the same to all child classes, without rewritting it in every class.
I call the printing method via the child class like
$childObject->printPhoneList();
The call seems to be handed over to the parent class 'Company' which is fine. But the $this points to the phoneList of the abstract parent class. So the phoneList in the abstract class seems to be unset, since i have set the phone list in the child class.
Here's a short example, showing what I mean:
<?php
abstract class AbstractClass {
private $var;
public function printVar() {
echo('var: ' . $this->var . '<br>');
}
}
class ConcreteClass extends AbstractClass {
public function __construct($var) {
$this->var = $var;
}
public function printVarChild() {
echo('var (child): ' . $this->var . '<br>');
}
}
$cl = new ConcreteClass(15);
$cl->printVar();
$cl->printVarChild();
?>
Output is:
var:
var (child): 15
Has anyone an idea how to print the $var of the child, without copying the method in every child class?
thanks in advance,
Norbert