PHP错误:致命错误:在不在对象上下文中时使用$ this

Isi*_*sis 1 php oop static

    public static function assign($name, $value)
    {
        $this->params[] = array($name => $value);
    }

    public static function draw()
    {
        return $this->params;
    }
}


<?php
    $test = Templater::assign('key', 'value')->draw();
    print_r($test);
Run Code Online (Sandbox Code Playgroud)

我需要函数"assign"是静态的,但$ params对于整个类来说很常见..但是这段代码不起作用.

Fatal error: Using $this when not in object context
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Vot*_*ple 7

听起来你想$params成为static:

<?php
class Templater
{
    static $params = array();

    public static function assign($name, $value)
    {
        self::$params[] = array($name => $value);
    }

    public static function draw()
    {
        return self::$params;
    }
}


<?php
    Templater::assign('key', 'value');
    $test = Templater::draw();
    print_r($test);
Run Code Online (Sandbox Code Playgroud)