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