假设我有一个基础对象 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 ?