首頁  >  文章  >  後端開發  >  php變數的引用計數器和寫入時複製

php變數的引用計數器和寫入時複製

WBOY
WBOY原創
2016-08-08 09:19:291080瀏覽

眾所周知,PHP是不支援指標的,但是如果希望兩個變數同時指向相同記憶體區塊怎麼辦呢?為了解決這個問題,PHP內核裡使用了引用計數器。
上篇部落格文章介紹了PHP變數在內核中的儲存方式了,zval結構中下面兩個成員變數用來引用計數器:

<code>is_ref  BOOL值,标识变量是否是引用集合。
refcount  计算指向引用集合的变量个数。
</code>

看下面的php程式碼

<code><?php
    $a = "this is a";
?>
</code>

一個zval結構的實體稱為zval容器。在php語言層建立變數就會相應地在php核心中建立一個zval容器。因為上面的程式碼創建了一個變數$a,所以在php核心中會建立一個zval容器;又因為這個變數不是一個引用,所以zval容器的is_ref等於FALSE,並且refcount等於1.
再看下面的程式碼

<code><?php
    $a = "this is a";
    $b=$a;
?>
</code>

上面這段程式碼建立了兩個變數aa 版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 以上就介紹了php變數的引用計數器和寫入時複製,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php函數註釋下一篇:php函數註釋