我有一个用 PHP 编写的 CLI 脚本。在此脚本中,我有一个 mainClass 实例,其中包含许多存储在 PHP 数组中的其他类型的对象实例。如何销毁 $mainObject 及其包含的所有对象?
示例代码:
class mainClass
{
private $_array1 = array();
private $_array2 = array();
private $_array3 = array();
public function __construct($data)
{
foreach ($data['a1'] as $val) {
$this->_array1[] = new Object1($val);
}
foreach ($data['a2'] as $val) {
$this->_array2[] = new Object2($val);
}
foreach ($data['a3'] as $val) {
$this->_array3[] = new Object3($val);
}
}
}
$mainObject = new mainClass($data);
function someFunction(mainClass $mainObject)
{
unset($mainObject);
}
最佳答案
你正在寻找 unset()。
但请注意,您不能显式销毁对象。
它将留在那里,但是如果您取消设置该对象并且您的脚本将 PHP 推送到内存限制,则不需要的对象将被垃圾收集。我会选择 unset() (而不是将其设置为 null),因为它似乎具有更好的性能(未经测试但记录在 PHP 官方手册的评论之一中)。
也就是说,请记住 PHP 总是会在页面提供后立即销毁对象。因此,只有在非常长的循环和/或繁重的密集页面上才需要这样做。
请引用此链接
Best way to destroy PHP object?
https://stackoverflow.com/questions/29535041/
相关文章:
php - fatal error : Call to undefined function mb_
python - 如何在不重复的情况下从numpy数组中提取随机索引的N个元素?
java - 如何从 3 个整数组成 HashMap 的键?
java - RestEasy 忽略枚举的 @JsonCreator 方法
wpf - 如何将打印到标签上的文本设为粗体、斜体或下划线?
php - 无法以正确的格式导出 xlsx 或 xls 所有数据都是困惑的
bash - jenkins - 如何将值从 bash 传递到 groovy?