从具有 PHP 属性的子对象访问父方法


access parent method from child object with attributes in php?

我有以下PHP类:

class a {
    public function vw($xc) {
        return $xc;
    }
}
class b extends a {
    public function wv() {
        echo vw() . 'from b via wv';
    }
}
$d = new a;
echo $d->vw('this is a');
$c = new b;
echo $c->vw('this is a from b via a');
$c->wv();

我得到的输出是:

   this is a

为什么我没有得到echo $c->vw('this is a from b via a');c->wv();的输出?

您可以通过parent::访问父级的方法,例如 parent::vw() .但是类 a 的方法vw需要一个参数,因此此代码片段根本不起作用。但是你应该得到使用父关键字的想法。

class a {
    public function vw($xc) {
        return $xc;
    }
}
class b extends a {
    public function wv() {
        echo parent::vw() . 'from b via wv';
    }
}
$d = new a;
echo $d->vw('this is a');
$c = new b;
echo $c->vw('this is a from b via a');
$c->wv();

http://php.net/manual/en/keyword.parent.php

https://3v4l.org/0MkQI

在类 "b" 中,你应该将函数 vw 写成:

   public  function wv(){
     echo $this->vw() . "from b via wv'n";
   }

此外,在最后一行中,$c->wv() 的调用缺少参数:$c->wv("I'm a missing parameter");

试试这个

        class a { 
            public tt;
               public function vw($xc){
                   $this->tt = $xc;
            return $this->tt;
        }
}
class b extends a
{
   public function(){
   return $this->tt. 'from b via wv'
}
}