to dear walkor:
$obj = new $class();
//記錄到對象池
Gdate::$objPool = &$obj;
如上 我會把所有new過的對象都放入一個(gè)對象池里面,當(dāng)一個(gè)請求結(jié)束后 我需要 手動(dòng)銷毀所有對象
請問這個(gè)要怎么弄,直接 unset ?還是設(shè)值為null?試了下 unset掉 Gdate::$objPool 原本的 對象還存在 zend會拷貝一份,設(shè)置為null是可以的,但不知道是不是標(biāo)準(zhǔn)做法
你是說 當(dāng) php new一個(gè)對象的時(shí)候 是對該內(nèi)存塊重新構(gòu)造初始化了一下嗎? 不過我試了下 當(dāng)請求不停過來 不停的new的時(shí)候 是越來越多的對象
$aa = new \stdClass();
$aa->test1 = 123;
$aa->test2 = 456;
self::$tmp = &$aa;
$bb = new \stdClass();
$bb->t1 = "ssss";
$bb->t2 = "ooooo";
self::$tmp = &$bb;
$bb->t3 = "ppppppppppppp";
var_dump(self::$tmp);
foreach (self::$tmp as $key => $o) {
unset(self::$tmp);
//self::$tmp = null;
}
var_dump(self::$tmp);
echo "*************_**__**_{$bb->t2}**************";
我是這樣測試的