2011-03-04 17 views
5

Estoy tratando de hacer una secuencia de comandos que está construida para trabajar con php 5.3 en un servidor php 5.2. El script usa muchos enlaces estáticos tardíos como:PHP 5.2 Equivalente a la unión estática tardía (nueva estática)?

return new static($options); 

¿Cuál es el equivalente a esto en php 5.2? ¿Sería nuevo yo de alguna manera? ¿O no es posible lograr el mismo efecto ...

Gracias

EDIT:

Aquí es una pregunta relacionada New self vs. new static

Juts tratando de envolver mi cabeza en torno a estas alturas estática cosas vinculantes ...

+4

No hay equivalente temo, estática finales unión sólo fue introducido en PHP 5.3. – Robin

+0

Esto se ve como singletonitis: X – KingCrunch

+0

Como dijo @Robin, no hay equivalente. ¿Tal vez get_class() puede ayudarte a lograr un resultado similar? – noun

Respuesta

-1

Creo que la única manera es pasar por un método estático protegido que construya su singleton y un método público estático que defina la clase a usar. Puede "emular" mediante el uso de la función de más de $ get_class este

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)); 
    } 
} 
Cuestiones relacionadas