1

如何在不编辑该文件的情况下覆盖类公共静态函数?假设我有一个类文件名 Display 并且在该类内部有一个名为 body open 的公共静态函数。

class Display {
    public static function body_open() {
        echo "\n" . '</head><!-- End <head> -->' . "\n\n";
        echo '<body class="' . self::body_class() . '">' . "\n\n";
        do_action('headway_body_open');
        echo "\n" . '<div id="zurbwrap">' . "\n";
        do_action('headway_whitewrap_open');
        do_action('headway_page_start');
    }

    public static function body_close() {
        echo "\n\n";
        do_action('headway_whitewrap_close');
        echo '</div><!-- #zurbwrap -->' . "\n";
        do_action('headway_body_close');
        echo "\n" . '</body>';
    }
}

假设我想更改 body_open 公共静态函数的 div 包装器。如何在不触及核心类文件的情况下做到这一点?有没有办法覆盖它?

4

2 回答 2

1

如果您使用的是 PHP 5.3+,则可以使用后期静态绑定:http ://php.net/manual/en/language.oop5.late-static-bindings.php

5.3 之前的任何内容都意味着您可能必须重新考虑该特定类的当前实现/架构。

于 2012-10-01T03:54:39.007 回答
1

如果您使用的是 PHP 5.3+,请使用后期静态绑定。

于 2012-10-01T03:56:35.330 回答