PHP 5.2 Эквивалент позднего статического связывания (новый статический)?
Я пытаюсь сделать скрипт, который построен для PHP 5.3 работает на сервере PHP 5.2. Скрипт использует много поздних статических привязок, таких как:
return new static($options);
Что эквивалентно этому в php 5.2? будет ли это как-то новым собой? Или нельзя добиться того же эффекта...
Спасибо
РЕДАКТИРОВАТЬ:
Вот связанный вопрос Новый я против новой статики
Просто пытаюсь обернуть мою голову этим поздним статическим переплетом...
1 ответ
Я думаю, что единственный способ - пройти через защищенный статический метод, который создает ваш синглтон, и публичный статический метод, который определяет используемый класс. Вы можете "эмулировать" его, используя функцию 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));
}
}