如何在PHP中调用超级?
我有一个扩展.classB
classA
在这两个和我定义方法.classA
classB
fooBar()
在我想在开始时调用。fooBar()
classB
fooBar()
classA
就像我习惯的方式,来自Objective-C。这在PHP中可能吗?如果是这样,如何?
我有一个扩展.classB
classA
在这两个和我定义方法.classA
classB
fooBar()
在我想在开始时调用。fooBar()
classB
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文档中有很好的记录。如果您有一个子类需要调用超类的构造函数,则可以通过以下方式调用它:
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
}
}
你可以在这里找到一个更激励人心的例子。