加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP需要__destruct方法吗?

发布时间:2020-12-13 13:40:39 所属栏目:PHP教程 来源:网络整理
导读:手册说 The destructor method will be called as soon as all references to a particular object are removed or when the object is explicitly destroyed or in any order in shutdown sequence. PHP GC不够用吗?有人可以举例说__destruct方法是必要的
手册说

The destructor method will be called as soon as all references to a
particular object are removed or when the object is explicitly
destroyed or in any order in shutdown sequence.

PHP GC不够用吗?有人可以举例说__destruct方法是必要的吗?

析构函数与释放内存没有任何关系 – 相反,它是一个“钩子”,允许在对象符合回收条件时运行自定义代码.也就是说,它与构造函数相反 – 构造函数不分配内存(因为在调用构造函数之前由GC完成)因此析构函数不会释放内存(因为这将由GC完成)然后).

虽然GC可以很好地管理本机资源(例如其他对象和对象图),但是诸如文件句柄之类的外部资源仍然必须“手动处理”.例如,假设一个MyFile类,析构函数将确保文件(如果打开)将被关闭 – 虽然可以说“更好”使它成为对对象调用Close / Dispose操作的要求,析构函数可以是在这种情况下用作后退机制.

我会反对使用GC语言中的析构函数的一般用法.他们可以引入一些微妙的问题,例如明显的非确定性和意外保持对象存活的能力 – 即使在使用引用计数的PHP等语言中也是如此. (Java / JVM和.NET模型使用的终结器更加挑剔.)

快乐的编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读