1

そのファイルを編集せずにクラス public static 関数をオーバーライドするにはどうすればよいですか? クラス ファイル名が Display で、そのクラス内に body open という public static 関数があるとします。

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 public static 関数の 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 以降を使用している場合は、late static bindingsを使用してください。

于 2012-10-01T03:56:35.330 に答える