使用相同的签名/名称调用父函数

Nim*_*imi 4 php oop inheritance extends

A和B具有相同签名的功能 - 让我们假设:foo($arg)- 和那个class A extends B.

现在我有一个实例:

$a = new A();

$a.foo($data);
Run Code Online (Sandbox Code Playgroud)

我还可以通过父级(B)的foo()功能运行$a还是被覆盖?

谢谢!NIMI

Nie*_*els 7

它被覆盖但是如果你想同时使用它们你可以这样做:

function parentFoo($arg)
{
    return parent::foo($arg);
}
Run Code Online (Sandbox Code Playgroud)

如果你想让子函数调用父函数,请执行以下操作:

function foo($arg)
{
    $result = parent::foo($arg);
    // Do whatever you want
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此URL:http://php.net/manual/en/keyword.parent.php


kni*_*ttl 7

.是PHP中的字符串连接运算符.要调用方法,请使用->.

要调用重写方法,请使用 parent::method()

class B {
  public function foo($data) {
    echo 'B';
  }
}

class A extends B{
  public function foo($data) {
    parent::foo($data);
    echo 'A';
  }
}

$a = new A();
$a->foo($data); // BA
$b = new B();
$b->foo($data); // B
Run Code Online (Sandbox Code Playgroud)