国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP垃圾回收機制引用計數器概念分析

2024-05-04 23:10:59
字體:
來源:轉載
供稿:網友

如果你安裝了xdebug,就可以用xdebug_debug_zval()顯示“zval”的信息了。如下:

復制代碼 代碼如下:


<?php
$str = "vevb.com";
xdebug_debug_zval('str');

結果:

str:
(refcount=1, is_ref=0),
string 'vevb.com' (length=10)

只有當變量容器在”refcount“變成0時就被銷毀.當你unset()一個變量時,想要的“zval”中refcount就會減1,再來說說前幾天遇到的unset引用問題:

復制代碼 代碼如下:


<?php
$a = "aaa";
$b = & $a;
unset($a);
//echo $b; //這里依然會輸出aaa,用xdebug_debug_zval打印你就知道為什么了
xdebug_debug_zval("b");

結果:

b:
(refcount=1, is_ref=0),string 'aaa' (length=3)
繼續說引用計數器問題,對于array和object符合類型情況又不一樣了:

復制代碼 代碼如下:


<?php
$arr = array( 'a' => 'aaa', 'b' => "bbb" );
xdebug_debug_zval( 'arr' );
$arr['aaa'] = $arr['a'];
xdebug_debug_zval( 'arr' );
?>

結果:

arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=1, is_ref=0),string 'aaa' (length=3)
'b' => (refcount=1, is_ref=0),string 'bbb' (length=3)
arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=2, is_ref=0),string 'aaa' (length=3)
'b' => (refcount=1, is_ref=0),string 'bbb' (length=3)
'aaa' => (refcount=2, is_ref=0),string 'aaa' (length=3)

可以看到看到原有的數組元素和新添加的數組元素關聯到同一個"refcount"2的zval變量容器.這里我也只是起到拋磚引玉的作用。

具體關于PHP引用計數器可以參照手冊:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶河县| 阆中市| 苏尼特左旗| 金秀| 秦安县| 合阳县| 江孜县| 上林县| 同德县| 茌平县| 利辛县| 鄱阳县| 驻马店市| 桑植县| 旌德县| 绥江县| 邵阳市| 方山县| 乐业县| 娱乐| 如皋市| 田东县| 新兴县| 巧家县| 鸡泽县| 康平县| 合阳县| 青铜峡市| 翁牛特旗| 岑溪市| 宁国市| 镇巴县| 周宁县| 峨边| 理塘县| 湖口县| 庆元县| 彭州市| 喀什市| 新宾| 错那县|