had to better myself...
Jochem Maas wrote:
Dmitry wrote:
Greetings.
If i run this code (php5): ------------------------------------------ class a { function say() { echo "A"; } function run() { $this->say(); } } class b extends a { function say() { echo "B"; } function run() { parent::run(); } }
$obj = new b; $obj->run(); ---------------------------------------
I will get "B", but how i may get "A"?
php -r '
class a { private $A; function __construct($speak = false ){$this->A="A"; $this->run($speak); } protected function say($speak) { if($speak) { echo $this->A; } } public function run($speak = true) { $this->say($speak); } }
class b extends a {
private $base;
function __construct($speak = false) { parent::__construct();$this->base = new A($speak); if ($speak) { $this->run(); } else { $this->base->run(); } }
protected function say($speak) { if($speak) { echo "B"; }else { parent::say(!$speak); } }
public function run($speak = true) { $this->say($speak); }
}
$obj = new b;$obj->run(false);' AAA
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php