Спасибо MiksIr,
class A {
private $b;
function __construct(){
$this->b = new B($this);
}
}
class B {
private $a;
function __construct($a){
$this->a = $a;
}
}
$i=1;
while($i<=1000){
$a = new A();
// 1 ссылка на A ($a).
// 1 ссылка на B (A::$b).
// 2 ссылки на A (B::$a).
unset($a);
// 1 ссылка на A всё ещё осталась. Память освобождать рановато.
echo $i."\t".memory_get_usage()."\n";
$i++;
}
Я выполнял указанный
скрипт, тестировал на PHP 5.2.17 (cli) (built: Jan 6 2011 17:28:41) Zend Engine v2.2.0
в 1-м
скрипте memory_get_usage() выдает
в начале: 59880
в конце: 452176
во 2-м
скрипте memory_get_usage() выдает
в начале: 60440
в конце: 452744
как я должен был увидеть утечку?