可以将$ this分配给从memcache加载的另一个对象吗?

时间:2011-05-17 04:00:32

标签: php oop memcached

将$ this分配给构造函数中从memcache加载的另一个对象是否可以? 我主要担心的是性能和内存。

我在想这样的事情:

function __construct($userid){
   global $memcachedvar;

   if($userobject = $memcachedvar->get($userid){
      $this = $userobject;
   } 
}

这是一个糟糕的设计模式吗?

2 个答案:

答案 0 :(得分:0)

来自评论:

  

PHP禁止在对象中的任何位置重新分配$this;您的代码将触发致命错误。在调用构造函数时,将为一个全新的对象分配内存,并且(根据引擎无论如何)将其换成另一个对象是不合适的。 - BoltClock

     

对象本身不应该负责缓存。如果您需要这样的功能 - 添加另一个层,它将实例化新对象或从mcd中检索一个。 - zerkms

@BoltClock和@zerkms给出了很好的评论。很明显,这个构造函数确实不可能。

答案 1 :(得分:0)

不,不行。事实上,这是无效的。

$this是神奇的,可能无法重新分配。