我正在使用一个从未实例化的类的静态方法来创建对象。对象由id值区分。我正在尝试缓存对象,因此后续相同id的请求将返回对已创建对象的引用。
以下演示代码:
class abc
{
static $cache = array();
static function get( $id )
{
if ( isset( static::$cache[$id] ) )
{
return static::$cache($id);
}
static::$cache[$id] = new abc();
return static::$cache[$id];
}
}
$ids = array(1,1,1,2);
foreach( $ids as $id )
{
abc::get($id);
}
这不起作用。当我更改一个对象的值时,它独立于具有相同ID的其他对象。我也试过放一个'&'在函数名称前面和方法调用之前无效。
两个问题: 我怎么能这样做 2.有必要还是有更好的方法?
感谢。