第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$a = 1; $b=$a; $a=2; 這段代碼的內(nèi)存是怎樣分配的?

$a = 1; $b=$a; $a=2; 這段代碼的內(nèi)存是怎樣分配的?

PHP
慕碼人8056858 2019-03-15 16:34:25
遇到一個面試題$a = 1; $b=$a; $a=2; 這段代碼的內(nèi)存是怎樣分配的? 通過我在網(wǎng)上的查詢得到兩種不同的觀點: 1)一種是 $a = 1; 首先給$a分配一個內(nèi)存 地址一 并且它里面存的值是 1 $b=$a; 將$a的變量容器復(fù)制一份,成為一個新的變量容器,$b指向這個容器(在這一步就進行了復(fù)制變量容器操作) $a=2; 這時改變$a的值變成2,就不會影響$b的值了 2)另一種方案就是 $a = 1; 首先給$a分配一個內(nèi)存 地址一 并且它里面存的值是 1 $b=$a; 將$b的也指向$a的地址一,此時不進行復(fù)制變量容器操作 $a=2; 這時需要改變$a的值變成2,這時就需要復(fù)制$a 這個變量容器,讓$b指向這個新的變量容器地址。 接下來就是我的驗證方式了,第一種方式:我是從內(nèi)存變化的角度來說明: echo 'PHP版本:'.PHP_VERSION."<br>"; echo '初始內(nèi)存大?。?.memory_get_usage()."<br>"; $a = 1; echo '執(zhí)行$a = 1后內(nèi)存變成:'.memory_get_usage()."<br>"; $b=$a; $a=2; echo '執(zhí)行$a=2后內(nèi)存變成:'.memory_get_usage()."<br>"; 輸出: PHP版本:7.0.15 初始內(nèi)存大小:6409416 執(zhí)行$a = 1后內(nèi)存變成:6409416 執(zhí)行$a=2后內(nèi)存變成:6409416 我發(fā)現(xiàn)內(nèi)存竟然沒有變化,驗證失敗了。 第二種驗證方式: 我用的是php 的debug_zval_dump 我的環(huán)境是php7,但是這個函數(shù)似乎不支持int類型的數(shù)據(jù), 我不得不重新弄一個類似的例子來驗證: echo PHP_VERSION."<br>"; $a = 'a'; debug_zval_dump($a); echo "<br>"; $b=$a; debug_zval_dump($a); echo "<br>"; $a='a1'; debug_zval_dump($a); 輸出: 7.0.15 string(1) "a" refcount(1) string(1) "a" refcount(1) string(2) "a1" refcount(1) 這時問題就來了,為什么refcount值始終是1,難道執(zhí)行完 $b=$a;不是應(yīng)該 refcount的值加一嗎 我懷疑是我的php版本問題,我又去php7.1上執(zhí)行 輸出: 7.1.1 <br>string(1) "a" refcount(1) <br>string(1) "a" refcount(1) <br>string(2) "a1" refcount(1) 一樣的結(jié)果。 然后我就去看一下php文檔,發(fā)現(xiàn)我中文檔中的 我也執(zhí)行: echo 'PHP版本:'.PHP_VERSION."<br>"; $var1 = 'Hello World'; debug_zval_dump($var1); 輸出: PHP版本:7.0.15 string(11) "Hello World" refcount(1) 而文檔的輸出是 refcount值為2 文檔鏈接 我的這一條驗證之路也被堵死了, 請各位大神給我點指導(dǎo)意見,是在是弄不出來了。
查看完整描述

6 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

這個考的主要是copy on write ,php 寫時復(fù)制。附上鳥哥and pi的文章,希望對你有用。
深入理解php原理之變量分離

php internal copy on write

查看完整回答
反對 回復(fù) 2019-03-18
?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

函數(shù) xdebug_debug_zval() 的參數(shù)是字符串類型的吧,你是不是參數(shù)用錯了!引用計數(shù)基本知識

查看完整回答
反對 回復(fù) 2019-03-18
?
慕容708150

TA貢獻1831條經(jīng)驗 獲得超4個贊

php7不再對簡單值進行引用計數(shù)

查看完整回答
反對 回復(fù) 2019-03-18
  • 6 回答
  • 0 關(guān)注
  • 630 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號