Php 释放相关记录以释放Yii1中的内存

Php 释放相关记录以释放Yii1中的内存,php,yii,memory-leaks,Php,Yii,Memory Leaks,我有一段代码,可以迭代团队记录的所有相关概要文件记录(有很多) 看起来是这样的: $team = Team::model()->findByPk(1); $score = 0; foreach ($team->profiles as $profile) { $score += $profile->getScore(); } 现在我需要保留$team变量,但由于循环,所有配置文件都将保存在profiles属性中,并占用大量内存 有没有办法安全地清理这个? 我曾想过将p

我有一段代码,可以迭代团队记录的所有相关概要文件记录(有很多)

看起来是这样的:

$team = Team::model()->findByPk(1);
$score = 0;

foreach ($team->profiles as $profile) {
    $score += $profile->getScore();
}
现在我需要保留
$team
变量,但由于循环,所有配置文件都将保存在
profiles
属性中,并占用大量内存

有没有办法安全地清理这个?
我曾想过将
profiles
设置为
null
,但它显然仍然是null(我不知道以后是否需要另一段代码访问
profiles

正如我所说,在我看来,您似乎想保留
$team
变量,但同时您不需要,因为它占用了大量内存

在这种情况下,我会一个接一个地解开它们:

for ($i=0;for ($i=0, $j = count($team->profiles); $i < $j ; ++$i ){
    $score += $team->profiles[$i]->getScore();
    unset($team->profiles[$i]);
}

// OR

foreach ($team->profiles as $key => $profile) {
    $score += $profile->getScore();
    unset($team->profiles[$key]);
}
for($i=0;for($i=0,$j=count($team->profiles);$i<$j;++$i){
$score+=$team->profiles[$i]->getScore();
未设置($team->profiles[$i]);
}
//或
foreach($team->profiles as$key=>$profile){
$score+=$profile->getScore();
未设置($team->profiles[$key]);
}

如果需要的话,再从数据库中获取它们。或者将它们存储在某种临时文件中。我认为没有其他方法。

就像我说的,在我看来,你似乎想保留
$team
变量,但同时你不想,因为它会占用大量内存

在这种情况下,我会一个接一个地解开它们:

for ($i=0;for ($i=0, $j = count($team->profiles); $i < $j ; ++$i ){
    $score += $team->profiles[$i]->getScore();
    unset($team->profiles[$i]);
}

// OR

foreach ($team->profiles as $key => $profile) {
    $score += $profile->getScore();
    unset($team->profiles[$key]);
}
for($i=0;for($i=0,$j=count($team->profiles);$i<$j;++$i){
$score+=$team->profiles[$i]->getScore();
未设置($team->profiles[$i]);
}
//或
foreach($team->profiles as$key=>$profile){
$score+=$profile->getScore();
未设置($team->profiles[$key]);
}

如果需要,可以从数据库中再次获取它们。或者将它们存储在某种临时文件中。我认为没有其他方法。

因此,您希望保留
$team
变量,但同时不保留,因为它会占用大量内存?如果是这种情况,我会逐个取消设置并从数据库中获取它们如果需要,请重新打开数据库。或者将它们存储在某种临时文件中。我认为没有其他方法。不,不。我需要保留
$team
变量,但我可能不需要保留
profiles
属性。至少,不是每个将要使用的
$team
记录。因此,您希望保留
$team
变量,同时你不需要,因为它占用了大量内存?如果是这样,我会一个一个地取消设置它们,如果你需要的话,再从数据库中获取它们。或者将它们存储在某种临时文件中。我认为没有其他方法。不,不。我需要保留
$team
变量,但我可能不需要保留
profiles
属性。至少,不是每个
$team
记录都要使用。