PHP: <?php class MyClass { protected function myFunct() { echo "MyClass::myFunc()\n"; } } class OtherClass { public function myFunc() { parent::MyClass(); echo "OtherClass::myFunc()\n"; } } $class = new OtherClass(); $class->myFunc(); ?> Подскажите могу ли я вызвать parent::MyClass(); через OtherClass . не делая OtherClass наследником MyClass? То есть не далая вот так: И если могу то как? Напишите пожалуйста код. PHP: class OtherClass extends MyClass { /* Override parent's definition */ public function myFunc() { /* But still call the parent function */ parent::myFunct(); echo "OtherClass::myFunc()\n"; } }
Так если его не делать наследником, то и parent'а не будет. А протектед запрещает вызывать класс вне текущего класса и его наследников. Т.е. обязательно надо наследовать. Либо делать MyClass::myFunc() public
@valentinnew В наследовании всё устраивает. Я просто не обратила внимание, что функция протектед. А мне надо было вызвать функцию myFunct() из класса MyClass. Вот так как внизу вообщем. Спасибо) PHP: <?php class MyClass { public function myFunct() { echo "MyClass::myFunc()\n"; } } class OtherClass { public function myFunc() { MyClass::myFunct(); echo "OtherClass::myFunc()\n"; } } $class = new OtherClass(); $class->myFunc(); ?> @mkramer спасибо, до меня дошло) --- Добавлено --- А, и ещё вопрос: Получается мы не можем вызвать функцию из другого класса если она protected? Её обязательно сделать наследником, так? Такова концепция?