PHP 5.2相当于后期静态绑定(新的静态)?

时间:2011-03-04 16:24:13

标签: php late-static-binding

我试图在php 5.2服务器上创建一个为php 5.3构建的脚本。该脚本使用了许多后期静态绑定,如:

return new static($options);

在php 5.2中有什么相同的东西?它会以某种方式成为新的自我吗?或者是不可能达到同样的效果......

由于

修改

以下是相关问题New self vs. new static

Juts试图绕过这个后来的静态绑定东西......

1 个答案:

答案 0 :(得分:-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));
    }
}