相关疑难解决方法(0)

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

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

return new static($options);
Run Code Online (Sandbox Code Playgroud)

什么是在PHP 5.2中相当于这个?它会以某种方式成为新的自我吗?或者是不可能达到同样的效果......

谢谢

编辑:

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

Juts试图绕过这个已经过时的静态绑定东西......

php late-static-binding

5
推荐指数
1
解决办法
1635
查看次数

覆盖PHP中的静态方法

我有一个像这样的抽象页面类:

abstract class Page {
    public static function display() {
        self::displayHeader();
        self::displayContent();
        self::displayFooter();
    }

    public static function displayContent() {
        print "<p>some content</p>";
    }

    public static function displayHeader() {
        include_once(kContent . "HeaderContent.class.php");
        HeaderContent::display();
    }

    public static function displayFooter() {
        include_once(kContent . "FooterContent.class.php");
        FooterContent::display();
    }
};
Run Code Online (Sandbox Code Playgroud)

我想从此子类化,并且只覆盖displayContent方法,因此页眉和页脚会自动显示,但仍然可以选择覆盖显示方法,例如.js文件.

现在我有另一个类,看起来像这样:

class FooPage extends Page {
    public static function displayContent() {
        print "<p>Foo page</p>";    
};
Run Code Online (Sandbox Code Playgroud)

现在,它不是调用FooPage的displayContent方法,而是从超类中调用它.

为什么?我能做什么?

编辑

我正在运行PHP 5.2.17

php static overriding

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×2

late-static-binding ×1

overriding ×1

static ×1