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

WBOY
發布: 2016-08-08 09:19:29
原創
1138 人瀏覽過

眾所周知,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教程有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板