检索内存中缓存的对象作为参考

时间:2014-03-10 01:38:26

标签: php

我正在使用一个从未实例化的类的静态方法来创建对象。对象由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.有必要还是有更好的方法?

感谢。

0 个答案:

没有答案