【发布时间】:2011-08-20 08:39:07
【问题描述】:
我想在我的 ORM 中做一些缓存
class Base {
static public $v=array();
static public function createById($id){
if(!array_key_exists($id, static::$v)){
static::$v[$id] = new static; //Get from DB here. new static is just example
}
return static::$v[$id];
}
}
class User extends Base{
}
class Entity extends Base{
}
但是现在缓存被合并了
var_dump(User::createById(1));
var_dump(Entity::createById(1));
结果
object(Model\User)#4 (0) {
}
object(model\User)#4 (0) {
}
如果我做了
class Entity extends Base{
static public $v=array();
}
class User extends Base{
static public $v=array();
}
我得到了我需要的东西:
object(Model\User)#4 (0) {
}
object(model\Entity)#5 (0) {
}
是否可以在每个类中不声明的情况下做到这一点?
【问题讨论】: