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

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to