PHP 5.2 Эквивалент позднего статического связывания (новый статический)? - PullRequest
5 голосов
/ 04 марта 2011

Я пытаюсь заставить скрипт, созданный для php 5.3, работать на сервере php 5.2. Скрипт использует много поздних статических привязок, таких как:

return new static($options);

Что эквивалентно этому в php 5.2? было бы как-то новым я? Или нельзя добиться того же эффекта ...

Спасибо

EDIT:

Вот связанный с этим вопрос Новое Я против новой статики

Джутс, пытаясь обернуть мою голову вокруг этой поздней статической привязки ...

1 Ответ

0 голосов
/ 25 сентября 2012

Я думаю, что единственный способ - это пройти через защищенный статический метод, который создает ваш синглтон, и публичный статический метод, который определяет используемый класс. Вы можете «эмулировать» его, используя функцию get_class над $ this

class ParentClass{
    protected static function getInstance2($className){
         //some stuffs here
         return new $className();
    }
    public static function getInstance(){
        return self::getInstance2(get_class(self));
    }
}
class ChildClass extends ParentClass{
    public static function getInstance(){
        return self::getInstance2(get_class(self));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...