我正在尝试从父类访问变量,如下所示:
//PARENT CLASS
class InfoString{
private $username = "JOE";
public function _construct(){}
protected function get_username(){
return $this->username;
}
}
class Service extends InfoString{
//this class should now inherit the variables in InfoString, right??
public function _construct(){}
public function hello_username(){
echo "HELLO! ". parent::get_username();
}
}
我打电话给这个班:
$a = new Service();
$a->hello_username(); //prints nothing, instead of the username
而不是得到“HELLO!JOE”,我得到一个空字符串。我在这里做错了什么?
另外,假设类'InfoString'将包含配置参数 - 扩展这个类是一个好主意,或者从适当的实现获取配置变量,比如'InfoString'类到另一个类? ?
感谢。
答案 0 :(得分:2)
您只是展开InfoString
,因此您只需使用$this->get_username();
即可。 ::
用于调用静态方法。
此外,如果您提高错误级别,则会收到错误消息。致电error_reporting(E_ALL)
;这将为您提供解决未来类似问题的线索。