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 {
function __construct($speak = false) { $this->run($speak); }
protected function say($speak) { if($speak) { echo "A"; } }
public function run($speak = true) { $this->say($speak); }
}
class b extends a
{
private $base;
function __construct($speak = false)
{
$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); echo "or try out reflection?\n"'
AA
or try out reflection?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php