欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

php如何引用計(jì)數(shù)實(shí)現(xiàn)垃圾回收

這篇文章主要為大家展示了“php如何引用計(jì)數(shù)實(shí)現(xiàn)垃圾回收”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php如何引用計(jì)數(shù)實(shí)現(xiàn)垃圾回收”這篇文章吧。

創(chuàng)新互聯(lián)2013年至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元西崗做網(wǎng)站,已為上家服務(wù),為西崗各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575

1、實(shí)現(xiàn)說(shuō)明

給對(duì)象添加引用計(jì)數(shù)器,每次在某個(gè)地方引用計(jì)數(shù)器的值都會(huì)增加。每當(dāng)引用失效時(shí),計(jì)數(shù)器的值就會(huì)減一。

變量value的refcount減一后等于0的話(huà),這個(gè)value就會(huì)被釋放,不是垃圾。垃圾回收器不處理。

變量value的refcount減一后大于0以上的話(huà),這個(gè)value被認(rèn)為不能釋放,有可能成為垃圾。

垃圾回收器收集可能的垃圾,達(dá)到一定數(shù)量后啟動(dòng)垃圾鑒定程序,釋放真正的垃圾。

2、實(shí)例

<?php
// PHP垃圾回收機(jī)制案例: 參考php手冊(cè)
 
 
// --------------------標(biāo)量類(lèi)型--------------------
// tip:每個(gè)php變量存在一個(gè)叫"zval"的變量容器中,該容器中包含變量的類(lèi)型和值,"is_ref":是否是引用變量,"refcount":引用計(jì)數(shù)
 
// ex:生成一個(gè)新的 zval容器
$a = 'new string';
// ex:顯示 zval容器 信息
xdebug_debug_zval('a'); // a:(refcount=1, is_ref=0),string 'new string' (length=10)
 
// ex:增加 zval容器的引用計(jì)數(shù)
$c = $b = $a;
xdebug_debug_zval('a'); // a:(refcount=3, is_ref=0),string 'new string' (length=10)
 
 
xdebug_debug_zval('b'); // b:(refcount=3, is_ref=0),string 'new string' (length=10)
xdebug_debug_zval('c'); // c:(refcount=3, is_ref=0),string 'new string' (length=10)
// tip:此時(shí)只有一個(gè)容器, 因?yàn)楫?dāng)沒(méi)必要時(shí),php不會(huì)去復(fù)制已生成的變量容器
// 此時(shí)這個(gè)變量容器被變量 a ,變量 b和變量c關(guān)聯(lián).
 
 
unset($b); // ex:減少引用計(jì)數(shù)
xdebug_debug_zval('a'); // a:(refcount=2, is_ref=0),string 'new string' (length=10)
// tip:unset 刪除變量時(shí),refcount 變量計(jì)數(shù)減一,此時(shí)只有$a,$b 指向該變量容器
 
 
unset($a);
unset($c);
var_dump($a);
// tip:此時(shí) recount為 0,變量被刪除
// 當(dāng)recount 變?yōu)?nbsp;0 時(shí),包含類(lèi)型和值的這個(gè)變量容器就會(huì)從內(nèi)存中刪除。
 
 
// --------------------復(fù)合類(lèi)型--------------
echo '--------------復(fù)合類(lèi)型------------<br/>';
 
$a = array(
    'name' => 'junior',
    'age'  => 18
);
xdebug_debug_zval('a');
// a:(refcount=1, is_ref=0),
// array (size=2)
//   'name' => (refcount=1, is_ref=0),string 'junior' (length=6)
//   'age' => (refcount=1, is_ref=0),int 18
 
 
// ex:添加一個(gè)已經(jīng)存在的元素到數(shù)組中
$a['love'] =  $a['name'];
xdebug_debug_zval('a');
// a:(refcount=1, is_ref=0),
// array (size=3)
//   'name' => (refcount=2, is_ref=0),string 'junior' (length=6)
//   'age' => (refcount=1, is_ref=0),int 18
//   'love' => (refcount=2, is_ref=0),string 'junior' (length=6)
 
 
// $a = array('one');
// xdebug_debug_zval('a');
// // $b = &$a;
// $c = $a;
// $b = &$c;
 
// xdebug_debug_zval('b');
// xdebug_debug_zval('c');
// xdebug_debug_zval('a');
 
 
 
// 清理變量容器問(wèn)題
echo '------------內(nèi)存泄漏問(wèn)題-----------<br/>';
$a = array('one');
xdebug_debug_zval('a');
// a:(refcount=1, is_ref=0),
// array (size=1)
//   0 => (refcount=1, is_ref=0),string 'one' (length=3)
 
$a[] = &$a;
xdebug_debug_zval('a');
// a:(refcount=2, is_ref=1),
// array (size=2)
//   0 => (refcount=1, is_ref=0),string 'one' (length=3)
//   1 => (refcount=2, is_ref=1),
//     &array
 
// unset($a);
// (refcount=1, is_ref=1)=array (
//     0 => (refcount=1, is_ref=0)='one',
//     1 => (refcount=1, is_ref=1)=...
//  )
 
// tip: unset($a) 后引用計(jì)數(shù)減一,盡管不再有某個(gè)作用域中的任何符號(hào)指向這個(gè)結(jié)構(gòu)(就是變量容器),
// 由于數(shù)組元素"1"仍然指向數(shù)組本身,所以這個(gè)容器不能被清除
// 因?yàn)闆](méi)有另外的符號(hào)指向它,用戶(hù)沒(méi)有辦法清除這個(gè)結(jié)構(gòu),結(jié)果就會(huì)導(dǎo)致內(nèi)存泄漏
// 慶幸的是, php將在腳本執(zhí)行結(jié)束時(shí)清除這個(gè)數(shù)據(jù)結(jié)構(gòu), 但是在php清除之前,將耗費(fèi)不少內(nèi)存.
// 同樣的情況也會(huì)發(fā)生在對(duì)象上,實(shí)際上對(duì)象更有可能出現(xiàn)這種情況,因?yàn)閷?duì)象總是隱式的被引用。

以上是“php如何引用計(jì)數(shù)實(shí)現(xiàn)垃圾回收”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:php如何引用計(jì)數(shù)實(shí)現(xiàn)垃圾回收
轉(zhuǎn)載注明:http://aaarwkj.com/article20/phosco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作網(wǎng)站設(shè)計(jì)公司、域名注冊(cè)、、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
亚洲av丰满熟妇在线观看| 亚洲一区二区三区女同| 久久久人妻91久久久久| 国产丰满熟女视频免费| 亚洲午夜福利啪啪啪| 亚洲一区二区三区蜜桃av| 国产免费高清视频成人| 亚洲欧美另类不卡专区| 国产三级精品正在播放| 亚洲熟女av综合网五月| 玩弄丰满熟妇班主任老师| 国产三级一区二区不卡| 精品蜜桃臀91人少妇| 亚洲丰满老熟女激情av| 日本欧美一区中文字幕| 国产中文精品字幕a区| 中国成熟女人毛茸茸视频| 亚洲天堂成人av蜜臀| 欧美视频在线观看香蕉| 国产剧情av一区在线观看| 久久精品国产免费夜夜嗨 | 欧美日韩性性在线观看| 久草福利在线观看免费| 男人午夜激情免费网站| 中文字幕国产精品资源| 久久久久亚洲av成人网人| 国产成人精品久久一区二区| 国产精品久久综合网| 国产欧美成人精品第一区| 国产精品日韩理论在线| 日韩一二卡在线观看视频| 国产精品九九久久精品三级| 久草国产免费福利在线视频| 日韩欧美人妻中文字幕| 黑丝美女被内射视频免费观看| 国产精品亚洲av三区国产毛片| 亚洲国产日韩欧美综合久久| 91麻豆亚洲国产成人久久精品| 国产69精品久久久久久人| 精品人妻一区二区三区观看| 日日夜夜精品天天综合|