PHP未声明的静态属性

时间:2019-01-28 13:48:31

标签: php singleton

我的类定义如下:

class FileSystem
{
    private static $_instance = NULL;

    private function __construct()
    {
        ...
    }

    public static function getInstance()
    {
        if (self::$_instance === NULL) { // <- line 83
            self::$_instance = new FileSystem;
        }

        return self::$_instance;
    }

    ...
}

运行时出现的错误是:

  

未捕获的错误:访问未声明的静态属性:   FileSystem :: $ _ instance在   / var / www / html /.../ FileSystem.php:83

运行代码的服务器具有php 7.1。

调用该类的方法在另一个类中

public function stream_close()
{
    if (!is_resource($this->_stream)) {
        return false;
    }

    FileSystem::getInstance()->fclose($this->_stream);

    return true;
}

1 个答案:

答案 0 :(得分:0)

您在问题中发布的代码应该可以正常工作。 发生这种错误的原因有一个,那就是当您不声明静态属性时,因此您的错误一定是您忘记保存了,或者您已经注释了该声明等等。