PHP对象生命时间

Ter*_*ser 5 php object php-5.2

我使用的是PHP 5.2.如果我在一个页面上新建一个对象,该对象什么时候会被破坏?在用户转到另一个.php页面时是否自动销毁对象,或者我需要显式调用__destructor?

Emi*_*röm 11

它将在页面加载结束时被破坏(从内存中卸载),或者如果您之前取消设置对它的所有引用.您不必手动销毁它,因为PHP总是清理脚本末尾的所有内存.

事实上,你永远不应该自己调用__destruct.如果要销毁对象,请使用unset取消设置对象的引用.__destruct实际上不会破坏你的对象,它只是一个在破坏之前由PHP自动调用的函数,所以你有机会在它被破坏之前进行清理.您可以根据需要调用__destruct多次,而无需记忆.

但是,如果您已将对象保存到会话变量,它将"休眠"而不是被销毁.请参阅__sleep手册.当然,它仍将从内存中卸载(并保存到磁盘),因为PHP在脚本之间没有任何内存.

  • 它将被销毁,从内存中删除,甚至可以运行析构函数,但您可以在之后恢复它(在下一页).也许我根本不应该提到它,因为它似乎与问题无关. (2认同)