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

发布于 2024-10-20 17:44:36 字数 364 浏览 5 评论 0原文

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

return new static($options);

php 5.2 中与此等效的是什么?它会以某种方式成为新的自己吗?或者是不可能达到相同的效果...

谢谢

编辑:

这是一个相关问题新自我与新静态

试图让我的头脑围绕这个最新的静态绑定内容......

I am trying to make a script that is built for php 5.3 work on a php 5.2 server. The script uses a lot of late static binding like:

return new static($options);

What is the equivalent to this in php 5.2? would it be new self somehow? Or is it not possible to achieve the same effect...

Thanks

EDIT:

Here is a related question New self vs. new static

Juts trying to wrap my head around this late static binding stuff...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高冷爸爸 2024-10-27 17:44:36

我认为唯一的方法是传递构建单例的受保护静态方法和定义要使用的类的公共静态方法。
您可以通过使用 $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));
    }
}

I think the only way is to pass by a protected static method that build your singleton and a public static method that defines the class to use.
You can "emulate" it by using the get_class function over $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));
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文