PHP 中的对象在使用后需要销毁吗?

2023-12-29

PHP 中的对象销毁有多重要? PHP 中的对象在使用后销毁很重要吗?因为与 java 不同,PHP 没有垃圾收集器(我不知道)


一般情况下你不需要销毁对象,PHP 当然也是如此有垃圾收集器 https://stackoverflow.com/questions/1735492/is-there-garbage-collection-in-php。此外,大多数简单的脚本甚至不需要一个脚本,因为整个环境都会针对每个 HTTP 请求而被拆除和重建;垃圾收集器帮助那些在服务时会耗尽内存的脚本single要求。

一般情况的例外情况:

您可能希望“丢失”对消耗大量内存和/或包装非托管资源的对象的所有引用;这通常很简单

$largeObject = null; // reference to previous value lost

如果这是最后一次引用$largeObject, then:

  • PHP 将立即调用析构函数(如果存在);如果您的脚本是长期存在的,您可能需要对包装非托管资源(例如数据库连接、套接字等)的对象执行此操作。
  • 该对象占用的内存现在可以进行垃圾回收。但是,收集不会当场发生,而是在稍后需要更多内存的时候发生(尽管您可以调用gc_collect_cycles http://www.php.net/manual/en/function.gc-collect-cycles.php随时强制垃圾收集)。

当然,在“服务请求然后退出”的典型情况下,所有这些都不会被考虑在内。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中的对象在使用后需要销毁吗? 的相关文章

随机推荐

  • Matlab 和 C# 之间的互操作

    浏览了互联网后 看起来 C 和 Matlab 之间可以互操作 我想知道是否有人取得了成功 以及他们做了什么 如果可能的话 以某种方式在不使用 COM 的情况下实现它 谢谢你的时间 从 MATLAB R2009a 版本开始 可以从 MATLA
  • Hibernate 选择具有给定属性的集合元素

    Entity Project具有集合属性contributors映射为 OneToMany与实体的关系User Entity Table name projects public class Project OneToMany JoinTa
  • 通过 p/invoke 从 c# 使用 XGBoost DLL

    我正在尝试使用XGBoost的 https github com dmlc xgboostdll libxgboost dll 来创建 DMatrix 类似于 2D 数组 并获取它有多少列 它运行良好 直到抛出一个System Access
  • 有没有办法调试 chrome 请求排队的原因?

    背景 Chrome 有一个请求队列 在某些情况下 它会对可延迟的请求进行排队 但我发现很难确定哪些请求导致请求排队 我的问题是 我们有办法深入了解排队问题的根本原因吗 源代码 https chromium googlesource com
  • 在 JavaScript 中过滤以字母开头的列表元素

    我正在尝试将以 N 开头的列表元素整理到一个新列表中 为什么这不起作用 const countries Norway Sweden Denmark New Zealand function firstN for let i 0 i
  • IIS Url 重写模块重写 Url 的页面上的 Response.Redirect

    我正在使用IIS网址重写 http www iis net download urlrewrite用于重写我的 ASP Net Web 应用程序的 url 的模块 URL 正在被重写 http domain version page asp
  • 有没有可以使用 Drools 的 GUI?

    我是流口水的新手 我已经将 Drools 与 jsp 集成了 现在我想知道有没有 Drools 的 GUI 可以运行其应用程序吗 谢谢 Drools Guvnor 是用于管理规则的 Web GUI http docs jboss org d
  • 对简单的 Java Web 应用程序使用框架有意义吗?

    我已经使用 jsps 和 servlet 完成了大量的 java web 开发 并且我发现这种方法既简单又灵活 不过 其中涉及的一些基础工作 例如管理数据库连接 相当乏味 而且仅仅为了启动一个新的 Web 应用程序就需要做大量的工作 因此
  • 我正在尝试做出反应贝宝按钮来更改道具更改的账单金额

    我正在尝试制作反应贝宝按钮来更改道具更改的计费金额 我用道具价格调用以下组件 每次价格变化时我想重新渲染按钮以更新实际价格 const PaypalForm props gt let paypalRef useRef useEffect g
  • 用于备份 linux/php 中数据库的 cron 作业

    我是 Linux cron 作业的新手 我正在使用 mysql DB 我的数据库名称为 Finaldb 我想每隔一小时获取一次该数据库 我有一个名为 dailbackup 的文件夹 在这个文件夹中我有按日期排列的文件夹 在这个每个文件夹中我
  • 连接 Data.Frame 中的行和列名称

    有没有办法将现有 data frame 中的行和列名称连接到新的数据框中 例如 我的列名称为 A B C 行名称为 1 2 3 我想将它们组合成一个 3x3 矩阵 A1 B1 C1 A2 B2 C2 A2 B2 C2 感谢您的帮助 The
  • 创建指向对象的指针后删除该对象 [Objective-C] [重复]

    这个问题在这里已经有答案了 可能的重复 NSMutableArray 中的lastObject 是否返回对象的副本 https stackoverflow com questions 9354215 does lastobject in n
  • gearman 问题和 php cli

    当尝试使用 php cli 在终端中运行命令时 我遇到了一些 gearman 问题 例如我运行这个命令 gearmand log file var log gearman job server gearman log and get gea
  • 在本地和云上配置 Azure 共享缓存

    我对共享缓存的工作完全不知所措 在本地 我运行了一个 mvc4 站点 并从中创建了一个云项目 我在角色上启用了缓存并将其设置为共置 到目前为止一切都很好 我添加了Windows Azure 缓存 http www nuget org pac
  • spring MVC:form:布尔属性的单选按钮

    我只是想知道如何在 Spring mvc 表单中使用布尔值 我尝试使用这段代码 My jsp
  • git push origin 被fallthru拒绝,hook被拒绝:gitolite

    我在推动时遇到问题git使用Gitolite 当我尝试这个时 git push origin refs tags deployment 我收到此错误 remote D NAME install py repos michael DENIED
  • PreferenceFragment 重叠工具栏

    正如标题 我的 PreferenceFragment 与我的工具栏重叠 我已经尝试了不同的解决方案 但问题仍然存在 希望有任何帮助 这是我的代码 Activity import android os Bundle import androi
  • A/Looper:无法创建唤醒管道。错误号=24

    我们正在构建一个可以制作大量动画并下载大量图像的应用程序 经过一定数量的交易 可预测的数量 后 应用程序崩溃并出现错误 A Looper Could not create wake pipe errno 24 我们在代码中不使用 Loope
  • 防止应用程序重启期间清除 Android logcat

    我正在使用 Android Studio 1 5 1 它会在应用程序重新启动期间清除 logcat 缓冲区 现在我的应用程序崩溃 重新启动 我看不到崩溃之前发生了什么 有没有办法让 Android Studio 中的 logcat 在应用程
  • PHP 中的对象在使用后需要销毁吗?

    PHP 中的对象销毁有多重要 PHP 中的对象在使用后销毁很重要吗 因为与 java 不同 PHP 没有垃圾收集器 我不知道 一般情况下你不需要销毁对象 PHP 当然也是如此有垃圾收集器 https stackoverflow com qu