Php 是否在对象级别设置缓存处理程序?

Php 是否在对象级别设置缓存处理程序?,php,late-binding,late-static-binding,Php,Late Binding,Late Static Binding,假设我有一个基本对象CacheObject: abstract class CacheObject { protected static $handler = null; public static function setCacheHandler($handler) { static::$handler = $handler; } public static function getCacheHandler($handler) {

假设我有一个基本对象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将给我“test”,我相信这是因为类A没有自己定义的属性$handler。。。所以它使用的是继承的一个,由类B共享。这准确吗

事实上,有没有任何方法可以将它们单独设置,而不需要在每个对象中声明$handler?

您的

public static function getCacheHandler($handler) { // No need to pass arg here
        return static::$handler;
    }
应该是

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

的确在这个例子中,我只是快速地复制了它。但它并没有回答我最初的问题……:)