假设我有一个基础对象,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?
答案 0 :(得分:0)
你的
public static function getCacheHandler($handler) { // No need to pass arg here
return static::$handler;
}
应该是
public static function getCacheHandler() {
return static::$handler;
}