我有以下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'
}
}