我正在使用 PHP 5.2。如果我在一页上new一个对象,这个对象什么时候会被销毁?当用户转到另一个 .php 页面时,对象是否会自动销毁,或者我需要显式调用 __destructor ?
它将在页面加载结束时被破坏(从内存中卸载),或者如果您之前取消设置对它的所有引用。您不必手动销毁它,因为 PHP 总是在脚本末尾清理所有内存。
事实上,你应该never调用 __destruct 自己。使用unset http://php.net/unset当您想要销毁对象时取消设置对对象的引用。 __destruct 实际上会not销毁你的对象,它只是一个由 PHP 自动调用的函数就在之前破坏,以便您有机会在其被破坏之前进行清理。您可以根据需要调用 __destruct 多次,而无需恢复记忆。
但是,如果您已将对象保存到会话变量中,它将“休眠”而不是被销毁。请参阅手册__sleep http://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep。当然,它仍然会从内存中卸载(并保存到磁盘),因为 PHP 在脚本之间的内存中不保存任何内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)