我有一个抽象类,它扩展了另一个类,函数被定义为受保护的,这个函数再次继承自另一个类,现在我正在尝试调用该函数。它给了我错误。我不知道我怎么了。我的代码如下所示:
abstract class abc {
abstract protected function f1($name, $address);
}
class xyz extends abc {
protected function f1($name, $address) {
return "$name , $address";
}
}
class jkl extends xyz {
echo $this->f1('Ravi','Delhi');
}
为了使你的代码正常工作,你应该在公共函数中包装类 jkl 中的echo
。
<?php
abstract class abc {
abstract protected function f1($name, $address);
}
class xyz extends abc {
protected function f1($name, $address) {
return "$name , $address";
}
}
class jkl extends xyz {
public function echodata(){
return $this->f1('Ravi','Delhi');
}
}
echo (new jkl)->echodata();
您尝试在类定义中放置代码以调用受保护的方法,但不在方法中。 这是无效的。 您需要将其放在一个方法中:
class jkl extends xyz {
public function go(){
echo $this->f1('Ravi','Delhi');
}
}
然后创建该类的实例,并从主程序主体中对其调用该方法:
$obj = new jkl;
$obj->go();
呵呵