致命错误:不在对象上下文中时使用$ this-尽管使用了非静态函数

时间:2019-02-28 06:32:26

标签: php

我正在尝试访问一个函数,但显示错误Fatal error: Using $this when not in object context

我尝试排除正在使用static但仍然无法唤醒的$this

class Header
{
    private static $instance = null;
    public $styles = '';

    public function __construct( $styles ){
        if(!empty($styles)){
            $this->setStyles($styles);
        }
    }
    public function setStyles( $styles ){
        return $this->styles = $styles;
    }
    public function getStyles(){
        return $this->styles;
    }
    public function renderHeader(){
        return self::headerDefaults();
    }
    public static function headerDefaults(){
        self::headerLayout($this->getStyles()); //error is on this line
    }
    public static function headerLayout( $styles ){
        switch ($styles) {
            case 'one':
                self::headerStyleOne();
                break;

            default:
                break;
        }
    }
    public static function headerStyleOne(){
        ?>
            <div>Header1</div>
        <?php
    }

    public static function getInstance(){
        if (empty(self::$instance)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

并调用类似的功能

$header = new Header('one');
echo $header->renderHeader();

0 个答案:

没有答案