php關於引用計數的疑問?
迷茫
迷茫 2017-06-27 09:18:05
0
1
754

在測試php關於引用計數的時候,看到一個變數有一個zval容器。裡麵包含兩個屬性 一個refcount 一個是is_ref

$array= array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'array' );

測試數組的參考計數的時候 傳回如期的結果

array (refcount=1, is_ref=0),
array (size=2)
'meaning' => (refcount=1, is_ref=0),string ' life' (length=4)
'number' => (refcount=1, is_ref=0),int 42

但是在測試物件的時候。出現一個疑問?

class  A{
    private $a1;
    public  $a2;
}

$class1 = new A();

xdebug_debug_zval('class1');

class1:
(refcount=1, is_ref=0),
object(A)[1]
private 'a1' => (refcount=2, is_ref =0),null
public 'a2' => (refcount=2, is_ref=0),null

不是很明白為什麼?這裡會是2 ?而不是1.而不是像php數組一樣。出現預期的refcount為1

而在php官方手冊中。關於引用計數的關於符合類型的解釋。
php引用計數

像array和object這樣的複合型別時,事情就稍微有點複雜. 與標量(scalar)類型的值不同,array和object類型的變數把它們的成員或屬性存在自己的符號表中.

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
给我你的怀抱

雷雷 雷雷 雷雷 雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!