我有以下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();
的输出?
答案 0 :(得分:2)
您可以通过parent::
访问父亲的方法,例如parent::vw()
。但是类vw
的方法a
需要一个参数,因此这段代码片段根本不起作用。但是你应该想到使用父关键字。
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();
答案 1 :(得分:0)
在“b”类中,你应该将函数vw写为:
public function wv(){
echo $this->vw() . "from b via wv\n";
}
此外,在你的最后一行中,$ c-> wv()的调用缺少一个参数: $ c-> wv(“我是一个缺失的参数”);
答案 2 :(得分:0)
试试这个
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'
}
}