J'ai un classB
qui étend classA
. Dans classB
je définis une méthode fooBar()
qui est également définie dans classA
. Dans fooBar()
de classB
je veux appeler fooBar()
de classA
au début. Comme d'habitude, d'Objective-C. Est-ce possible en PHP? Et si oui, comment?
parent::fooBar();
Directement depuis le manuel :
Le ... double colon, est un jeton qui permet d'accéder aux ... propriétés ou méthodes redéfinies d'une classe.
...
Exemple # 3 Appel de la méthode d'un parent
<?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(); ?>
Juste une note rapide car cela ne se présente pas aussi facilement dans les recherches Google, et cela est bien documenté dans les documents php si vous pouvez le trouver . Si vous avez une sous-classe qui doit appeler le constructeur de la superclasse, vous pouvez l'appeler avec:
parent::__construct(); // since PHP5
Un exemple serait si la super classe a des arguments dans son constructeur et qu'elle implémente des classes doit appeler cela:
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
}
}
Vous pouvez trouver un exemple plus motivant ici .