to dear walkor:
$obj = new $class();
//記錄到對(duì)象池
Gdate::$objPool = &$obj;
如上 我會(huì)把所有new過的對(duì)象都放入一個(gè)對(duì)象池里面,當(dāng)一個(gè)請(qǐng)求結(jié)束后 我需要 手動(dòng)銷毀所有對(duì)象
請(qǐng)問這個(gè)要怎么弄,直接 unset ?還是設(shè)值為null?試了下 unset掉 Gdate::$objPool 原本的 對(duì)象還存在 zend會(huì)拷貝一份,設(shè)置為null是可以的,但不知道是不是標(biāo)準(zhǔn)做法
你是說 當(dāng) php new一個(gè)對(duì)象的時(shí)候 是對(duì)該內(nèi)存塊重新構(gòu)造初始化了一下嗎? 不過我試了下 當(dāng)請(qǐng)求不停過來 不停的new的時(shí)候 是越來越多的對(duì)象
$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}**************";
我是這樣測(cè)試的