PHP 析构函数 | unset() VS 覆盖对象

标签 php object memory destructor

我从中学到了SO question在 PHP 中销毁对象的最佳方法是使用 unset

我想知道如果我本质上在循环中使用相同的变量,我是否需要销毁该对象......

foreach ($ids_array as $id) {
    $O = new Object($id);

    // stuff and things
}

这真的使用相同的内存还是我在不知不觉中创建了一堆对象而不销毁它们?

最佳答案

如果没有变量引用一个对象,它最终会被垃圾收集。为此,无论您取消设置变量还是简单地为它们分配其他内容以使它们停止引用该对象,都无关紧要。

在我看来,你应该很少使用unset,你应该编写小函数,当它们返回时,它会自动丢弃其范围内的所有变量,这意味着东西将被垃圾收集迟早会自动出现,您无需太担心。

关于PHP 析构函数 | unset() VS 覆盖对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331356/

相关文章:

javascript - 点击事件时从数据库获取价格

作为对象的 JavaScript 词法环境

java - Java中是否存在内存泄漏

ios - 大 (UI) 图像内存管理

javascript - Lodash,检查对象是否存在以及属性是否存在且为 true

linux - 从 U-boot shell 模式写入 NVRAM

php - 如何仅删除所有 anchor 标记和 href 属性?

php - 如何使用 Laravel 5.2 以相同的方法添加和更新表行

php - 为什么迭代以无限循环结束的 ArrayIterator?

java - 在Java中构造新对象时出现堆栈溢出错误