是否可以将
$this分配给构造函数中从memcache加载的另一个对象?我主要担心性能和内存。
我在想这样的事情:
function __construct($userid){
global $memcachedvar;
if($userobject = $memcachedvar->get($userid){
$this = $userobject;
}
}
这是一个糟糕的设计模式吗?
不,这不行。事实上,它是无效的。
$this
是神奇的,可能不会重新分配。
来自评论:
PHP 禁止在对象中的任何位置重新分配
$this
;您的代码将触发致命错误。在调用构造函数时,内存将分配给一个全新的对象,并且将其换成另一个对象是不合适的(无论如何根据引擎)。- 螺栓时钟对象本身不应负责缓存。如果您需要这样的功能 - 添加另一个层,该层将实例化新对象或从 mcd 检索一个对象。- 泽尔克
@BoltClock和@zerkms给出很好的评论。显然,这个构造函数实际上是不可能的。