PHP ООП Синглтон Класс - PullRequest
1 голос
/ 11 июня 2011

У меня есть код

public static function constructMe() {
    if(!$this->_instance instanceof self) {
    $this->_instance = new self();
    }
    return $this->_instance;
}

Чтобы создать экземпляр класса, в классе есть переменная $_instance, но я получаю сообщение об ошибке:

Fatal error: Using $this when not in object context

1 Ответ

7 голосов
/ 11 июня 2011

Вам необходимо использовать

self::$_instance

Поскольку вы находитесь в статической области видимости (у вас нет $this)

Кроме того, убедитесь, что вы объявили

private static $_instance;

Кроме того, я не знаю, работает ли new self();. Вы можете попробовать new __CLASS__() или просто написать имя класса.

И не использовать instanceof, просто проверьте с помощьюisset или empty (точнее)

И будьте осторожны, используя !$var instanceof something, всегда пишите как !($var instanceof something), потому что вы не хотите случайно привести к логическому значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...