Bir dizi yeniden atama onun tarafından kullanılan belleği serbest bırakır?

2 Cevap php

Benim sınıf bir üye değişkeni dizi öğeleri vardır. Periyodik Ben dizi bu gibi başka, geçici dizinin, değer olarak yeniden atamak:

$temp = array();
$temp[] = new Object();
$temp[] = new Object();
$temp[] = new Object();
... etc.

$this->items = $temp;

Yani, bir bellek sızıntısı olabilir? $ Değerini atayarak bu-> yeni bir değer, $ temp temp, başlangıçta $ tüm öğeleri (öğe nesneleri) bu-> temp hala oyalanmak olur, ya da serbest olurdu?

2 Cevap

Bu bir bellek sızıntısına neden olmaz. $ Temp ve $ this-> ürün aynı diziyi sadece referanslar vardır. PHP bir çöp toplanan bir dil olduğundan diziye daha fazla başvuru olduğunda, array (çöp toplama) silinecektir.

Onlar bir süre için oyalanmak, ancak PHP onlar garbage collector tarafından sonunda serbest kalacak.