在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()
,这会导致脚本崩溃。使可能不要闭着眼睛过马路!