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

0

您的

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

应该

public static function getCacheHandler() {
        return static::$handler;
    }
于 2013-11-08T04:58:14.790 回答