Profic
just Profic (PHP5 BetaTeam)
[php5]Обращение к методу потомка через родителя
Можно ли хотеть от PHP5 (RC3) возможности обращения к protected методу потомка через метод родителя, наследованный потомком? Т.е. что-то типа такого:
На это php ругается:
Fatal error: Call to protected B::b() from context '' in C:\***\test.parser.php on line 19
Call Stack
# Function Location
1 {main}() C:\***\test.parser.php:0
Это вообще идеологически правильно или я такого не должен хотеть?
-~{}~ 14.06.04 21:45:
ЗЫ. Я конечно могу сделать funtion b не protected, а public, но это уж точно неправильно, т.к. эта функция нужна только внутри этих классов, но не снаружи.
-~{}~ 15.06.04 00:44:
ЗЫЫ. Все-таки мне кажется, что это баг. И его соответственно нужно запостить в базу багов.
tony2k1
Как считаешь? (Ты вроде спец по внутренностям PHP )
Можно ли хотеть от PHP5 (RC3) возможности обращения к protected методу потомка через метод родителя, наследованный потомком? Т.е. что-то типа такого:
PHP:
<?
class A {
private $a = NULL;
public function a () {
echo 'A::a called';
self::$a ();
}
}
class B extends A {
public function __contruct () {
$this->a = 'b';
}
protected function b () {
echo 'B::b called';
}
}
$b = new B;
$b->a ();
?>
Fatal error: Call to protected B::b() from context '' in C:\***\test.parser.php on line 19
Call Stack
# Function Location
1 {main}() C:\***\test.parser.php:0
Это вообще идеологически правильно или я такого не должен хотеть?
-~{}~ 14.06.04 21:45:
ЗЫ. Я конечно могу сделать funtion b не protected, а public, но это уж точно неправильно, т.к. эта функция нужна только внутри этих классов, но не снаружи.
-~{}~ 15.06.04 00:44:
ЗЫЫ. Все-таки мне кажется, что это баг. И его соответственно нужно запостить в базу багов.
tony2k1
Как считаешь? (Ты вроде спец по внутренностям PHP )