繁体   English   中英

关于 PHP 如何从父 class 中的变量获取值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM