![](/img/trans.png)
[英]How do I refer to a child class variable from an inherited parent class method in PHP?
[英]on PHP how do I get the value from a variable in a parent class?
class config {
public $pageName;
function __construct($pageName=''){
$this->pageName = $pageName;
}
}
class header extends config {
function display(){
echo parent::$this->pageName;
}
}
$config = new config('Home Page');
$header = new header();
$header->display();
这不显示任何内容,我认为它应该显示“主页”。
知道我如何实现这一目标吗?
$header
object 与$config
object 没有任何关系。仅仅因为它们的 class 层次结构是连接的并不意味着object 实例共享数据。
$config1 = new config('Home Page');
$config2 = new config();
这里$config2
也无法访问值'Home Page'
,因为它是一个不同的 object。这不是 class 层次结构的问题。
你想组合你的对象而不是继承它们的类(又名控制反转,依赖注入):
interface IConfig {
public function pageName();
}
class Config implements IConfig {
private $pageName;
public function pageName() { return $this->pageName; }
function __construct($pageName=''){
$this->pageName = $pageName;
}
}
class Header {
private $config;
function __construct(IConfig $config) {
$this->config = $config;
}
function display(){
echo $this->config->pageName();
}
}
$config = new Config('Home Page');
$header = new Header($config);
$header->display();
$header = new header('Home Page');
$header->display();
$header = new header('Home Page');
$header->display();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.