在php中从具有属性的子对象访问父方法?

在php中从具有属性的子对象访问父方法?,php,class,Php,Class,我有以下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

我有以下
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的输出(“这是a通过a从b得到的”)
c->wv()

在类“b”中,应将函数vw编写为:

   public  function wv(){
     echo $this->vw() . "from b via wv\n";
   }
此外,在最后一行中,$c->wv()的调用缺少一个参数: $c->wv(“我是一个缺少的参数”)

试试这个

        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'
}
}

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

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();


您可以格式化代码并更正错误(没有
test
t
类)吗?很抱歉@jan“为什么我没有得到echo$c->vw的输出('这是a通过a'从b得到的);和c->wv();?”——因为脚本在
echo vw()行触发了一个致命错误从b经wv′。没有函数
vw()
,这会导致脚本崩溃。使可能不要闭着眼睛过马路!