5

我正在尝试使为 php 5.3 构建的脚本在 php 5.2 服务器上工作。该脚本使用了很多后期静态绑定,例如:

return new static($options);

在 php 5.2 中与此等效的是什么?它会以某种方式成为新的自我吗?还是不能达到同样的效果...

谢谢

编辑:

这是一个相关的问题New self vs. new static

试图将我的头包裹在这个后期静态绑定的东西上......

4

1 回答 1

-1

我认为唯一的方法是通过一个受保护的静态方法来构建你的单例和一个定义要使用的类的公共静态方法。您可以通过在 $this 上使用get_class函数来“模拟”它

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));
    }
}
于 2012-09-25T07:32:35.413 回答