91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP底層分析中強制分裂的講解

發布時間:2020-04-22 10:25:30 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

今天小編給大家分享的是PHP底層分析中強制分裂的講解,簡單來說,強制分裂就是”在引用變量主動賦值前,該變量傳值賦值過,就會發生強制分裂。”

話說起來比較繞,看下代碼解析吧。

看下面的代碼:

PHP底層分析中強制分裂的講解

稍微熟悉 PHP:&引用符號都應該可以看出,output分別為gzchen,傍晚八點半,gzchen。

那么我們來看看以上代碼的底層運行流程吧。

眾所周知,一個變量就是一個結構體,長成下面這樣:

PHP底層分析中強制分裂的講解

每一行都寫了注釋,此文件在zend.h在PHP源碼Zend的目錄下。

當代碼運行到line:3[$name = ‘傍晚八點半’]的時候,內存中的結構體長這樣:

PHP底層分析中強制分裂的講解

當代碼運行到line:4[name]的時候,結構體變成這樣:

PHP底層分析中強制分裂的講解

運行到line:5[Misplaced &name]和line:[$nameCopy = ‘gzchen’],是這樣:

PHP底層分析中強制分裂的講解

此處,此處,就是此處發生了強制分裂。

當is_ref__gc[引用屬性]從0->1,如果refcont_gc>1,那么就會發生強制分裂。偽代碼就是:

PHP底層分析中強制分裂的講解

這個就是強制分裂。原本已經經過傳值賦值的變量,再次引用賦值出去。被傳值賦值的變量就會被分裂出一個結構體,在這里是$myName。

實際開發基本用不到這層原理,但在面試中強制分裂通常會和寫時復制(cow)一起考。

關于PHP底層分析中強制分裂的講解就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西和县| 图片| 扎赉特旗| 巩义市| 全椒县| 兴化市| 象山县| 沾化县| 迭部县| 长沙市| 大连市| 澳门| 尉氏县| 东宁县| 彰化县| 庆城县| 天峨县| 明光市| 宁夏| 招远市| 丽江市| 宜昌市| 精河县| 义马市| 林芝县| 邯郸市| 平阴县| 玉溪市| 当雄县| 利辛县| 松溪县| 石渠县| 宁晋县| 呼和浩特市| 龙海市| 渑池县| 义乌市| 瓦房店市| 绩溪县| 桦甸市| 正宁县|