【问题标题】:Repeated object creation in php在 php 中重复创建对象
【发布时间】:2017-07-22 10:26:52
【问题描述】:
我有自己的php结构
现在有控制器和模型我想将记录从 db 导出到 CSV 文件
我的问题是 php 可以管理垃圾收集或内存资源吗?
因为每次对控制器的ajax请求和控制器都会创建一个模型对象
每个请求都添加有限的行(正如我定义的那样),例如1000 行到 CSV,然后再次调用 ajax 请求
我有大量数据,所以我只想知道每次创建控制器和模型对象都是这项工作的床练习吗?
注意:我不在两个类(模型)中创建构造函数
【问题讨论】:
标签:
php
ajax
object
memory-management
garbage-collection
【解决方案1】:
每次发出新请求时,php 都会创建对象,并在 php 完成处理后销毁它们。 Php 在请求之间不会在内存中保留任何内容,它有一种“不共享”的方法。所以不,你没有做错任何事。
如果您在代码中多次调用一个对象,例如数据库连接类,并且在整个请求中只希望该对象的一个实例使用单例。
class Singleton {
private static $instance;
protected function __construct()
{
//Do something, or don't
}
private function __clone() {}
private function __wakeup() {}
public static getInstance()
{
if (!static::$instance) {
static::$instance = new Singleton();
}
return static::$instance;
}
}