首頁  >  文章  >  後端開發  >  php的傳值與引用講解

php的傳值與引用講解

小云云
小云云原創
2018-03-29 10:03:381293瀏覽

本文主要和大家分享php的傳值和引用講解,主要以文字的形式和大家分享,希望能幫助大家。

介紹:

每個php變數存在一個叫做"zval"的變數容器中。一個zval變數容器,除了包含變數的類型和值,還包括兩個位元組的額外資訊。第一個是"is_ref",是個bool值,用來識別這個變數是否是屬於引用集合(referenceset)。透過這個位元組,php引擎才能把普通變數和引用變數區分開來,由於php允許使用者透過使用&來使用自訂引用,zval變數容器中還有一個內部引用計數機制,來優化記憶體使用。第二個位元組是"refcount",用以表示指向這個zval變數容器的變數(也稱為符號即symbol)個數。當"refcount"的值是1時,」is_ref」的值總是FALSE.

範例:

<?php$a = 10;
//将常量值赋给变量,会为a分配内存空间$b = $a;
//变量赋值给变量,给b分配了内存空间,并将a变量的类型和值复制一份存储到b的存储空间 $c = &$a;
//引用是不会为c分配空间的,c和a是共用一份内存空间数据。

PHP中將一個變數賦值給新變數時,不會立即為新變數分配記憶體空間,只是增加了對記憶體空間的引用。當原變數或新變數作出任何變更時,才會為新變數 分配一塊記憶體空間。

相關推薦:

php函數普通傳值與引用傳值有何不同

#

以上是php的傳值與引用講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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