У меня есть classB
который расширяет classA
В classB
я определяю метод fooBar()
который также определен в classA
В fooBar()
класса classB
я хочу fooBar()
вызвать fooBar()
класса classA
Так же, как я привык, от Objective-C. Возможно ли это в PHP? И если да, то как?
parent::fooBar();
Прямо из руководства :
Двойной двоеточие – это токен, который позволяет получить доступ к … переопределенным свойствам или методам класса.
…
Пример # 3 Вызов метода родителя
<?php class MyClass { protected function myFunc() { echo "MyClass::myFunc()\n"; } } class OtherClass extends MyClass { // Override parent's definition public function myFunc() { // But still call the parent function parent::myFunc(); echo "OtherClass::myFunc()\n"; } } $class = new OtherClass(); $class->myFunc(); ?>
Просто быстрая заметка, потому что это не так просто в поиске Google, и это хорошо документировано в php docs, если вы можете его найти . Если у вас есть подкласс, который должен вызвать конструктор суперкласса, вы можете вызвать его с помощью:
parent::__construct(); // since PHP5
Например, если суперкласс имеет некоторые аргументы в его конструкторе, и он реализует классы, необходимо вызвать это:
class Foo { public function __construct($lol, $cat) { // Do stuff specific for Foo } } class Bar extends Foo { public function __construct()( parent::__construct("lol", "cat"); // Do stuff specific for Bar } }
Здесь вы можете найти более мотивирующий пример.