Php 是否在对象级别设置缓存处理程序?
假设我有一个基本对象CacheObject: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) {
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;
}
的确在这个例子中,我只是快速地复制了它。但它并没有回答我最初的问题……:)