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


Is it ok to assign $this to another object loaded from memcache?

是否可以将

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

我在想这样的事情:

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

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

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

$this是神奇的,可能不会重新分配。

来自评论:

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

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

@BoltClock和@zerkms给出很好的评论。显然,这个构造函数实际上是不可能的。