0

ベース オブジェクト CacheObject があるとします。

abstract class CacheObject {
    protected static $handler = null;

    public static function setCacheHandler($handler) {
        static::$handler = $handler;
    }

    public static function getCacheHandler($handler) {
        return static::$handler;
    }
}

class A extends CacheObject {

}

class B extends CacheObject {

}

A::setCacheHandler('test');
var_dump(B::getCacheHandler());

Bは私に「テスト」を提供します。これは、クラスAに独自の定義済みプロパティ$handlerがないためだと思います...クラスBで共有された継承されたものを使用しています。これは正確ですか?

すべてのオブジェクト内で $handler を宣言する必要なく、実際にそれらを個別に設定する方法はありますか?

4

1 に答える 1