PHP:从对象内部销毁对象?
PHP 有没有办法从同一个对象中销毁一个对象?
Is there a way in PHP to destroy an object from within that same object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
PHP 有没有办法从同一个对象中销毁一个对象?
Is there a way in PHP to destroy an object from within that same object?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
如果在对象的上下文中调用一种方法,则必须至少有一个对该对象的引用。由于 php 只删除无法访问的对象,所以答案是:不。
If a method is called in the object's context then there has to be at least one reference to that object. And since php only removes unreachable objects the answer is: no.
有一种方法可以自毁对象:
使用
$GLOBALS
数组在其中查找您的实例,然后使用unset()
。要注意unset()
并不会一直自动调用__destruct()
魔术方法...这种方式有这样的注释(参见
unset()
文档)在 PHP 文档中,但它没有准确解释unset()
何时不调用__destruct()
方法。我有这个特定的行为:
我做了一个:
首先调用 __constructor,然后调用 __destruct()。或者我希望首先调用
__destruct()
因为unset()
在克隆之前...我现在坚持这一点......
尼古拉斯。
There is a way to self destruct an object :
Use the
$GLOBALS
array to find your instance in it, then useunset()
. Be aware thatunset()
does not automatically call the__destruct()
magic method all the time...There is such a note in this way (see the
unset()
documentation) in the PHP documentation, but it does not explain exactly whenunset()
does not call the__destruct()
method.And I had this specific behaviour :
I do a :
And the
__constructor
is called first, then the__destruct()
. Or I would like the__destruct()
to be called first becauseunset()
is before clone...I ma stuck with that now...
Nicolas.