亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2880 | 回復(fù): 9
打印 上一主題 下一主題

關(guān)于“引用”的一些秘密 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-06-10 15:31 |只看該作者 |倒序?yàn)g覽
看一下下面的代碼:

  1. $a = array(1,2,3);
  2. $b = $a;
  3. debug_zval_dump($a);

  4. 輸出:
  5. array(3) refcount(3){...}
復(fù)制代碼
上面的輸出很好理解,$b=$a導(dǎo)致refcount+1,$a作為debug_zval_dump的參數(shù)再次使refcount+1。
------------------------------------------------------------------------------------------------------------------

修改一下:

  1. $a = array(1,2,3);
  2. $b = $a;
  3. debug_zval_dump(&$a);

  4. 輸出:
  5. &array(3) refcount(2){...}
復(fù)制代碼
看到這里,你可能有點(diǎn)迷糊了,我剛看到輸出的時候,也非常的迷惑。這個過程是這樣的:
1、$b=$a;
這里沒問題,refcount+1

2、debug_zval_dump(&$a);
在這里,php干了一件事,它將$a所對應(yīng)的內(nèi)存復(fù)制了一份給$b,$a與$b獨(dú)立了,也就是“Copy on Write”的效果,因此refcount=2
-------------------------------------------------------------------------------------------------------------------

再來:

  1. $a = array(1,2,3);
  2. $b = &$a;
  3. debug_zval_dump(&$a);

  4. 輸出:
  5. &array(3) refcount(3){...}
復(fù)制代碼
在這里,由于$b也是$a的引用,因此在debug_zval_dump(&$a)時沒有發(fā)生“Copy on Write”。
------------------------------------------------------------------------------------------------------------------

最后一個:

  1. $a = array(1,2,3);
  2. $b = &$a;
  3. debug_zval_dump($a);

  4. 輸出:
  5. &array(3) refcount(1){...}
復(fù)制代碼
這里,在進(jìn)行debug_zval_dump($a)調(diào)用時,直接創(chuàng)建了$a的副本,作為函數(shù)的參數(shù)。注意與情況1比較。

寫php的時候,不正確的使用引用,不僅不能提高效率,反而會起到反效果。

個人的一些見解,歡迎拍磚。
參考:http://www.informit.com/articles/article.aspx?p=516587&seqNum=2

評分

參與人數(shù) 1可用積分 +10 信譽(yù)積分 +2 收起 理由
bs + 10 + 2 寫得不錯

查看全部評分

論壇徽章:
0
2 [報告]
發(fā)表于 2010-06-11 09:49 |只看該作者
寫的好復(fù)雜。。一般都不用 &  
寫了這些年,都沒用過。。。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-06-11 10:37 |只看該作者
回復(fù) 2# maochanglu

有的東西還是要深入了解一下還是很好好處的

論壇徽章:
80
20周年集字徽章-慶
日期:2020-10-28 14:09:1215-16賽季CBA聯(lián)賽之北京
日期:2020-10-28 13:32:5315-16賽季CBA聯(lián)賽之北控
日期:2020-10-28 13:32:4815-16賽季CBA聯(lián)賽之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
4 [報告]
發(fā)表于 2010-06-12 08:47 |只看該作者
有道理啊 如果說不知道當(dāng)你在無意中用到了  就不知道是什么原因了 但是如果知道了  那就好辦多了

論壇徽章:
0
5 [報告]
發(fā)表于 2010-06-15 21:58 |只看該作者
學(xué)習(xí)了,謝謝分享

論壇徽章:
52
碼神
日期:2017-03-28 10:27:10綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-10-11 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-28 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00每日論壇發(fā)貼之星
日期:2015-09-12 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-12 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-08 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:002015亞冠之德黑蘭石油
日期:2015-09-01 10:41:53每日論壇發(fā)貼之星
日期:2015-10-11 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2015-10-12 06:20:00
6 [報告]
發(fā)表于 2010-06-16 22:24 |只看該作者
真不錯,謝謝分享。

論壇徽章:
0
7 [報告]
發(fā)表于 2010-06-22 11:53 |只看該作者
好文章啊。
變量在賦值的時候,都是指向同一片內(nèi)存,ref+1
如果引用賦值,則ref不變。
在調(diào)用函數(shù)的時候,只要有引用存在,php在內(nèi)部就會進(jìn)行內(nèi)存的智能分離,這就是2跟4的區(qū)別!

論壇徽章:
0
8 [報告]
發(fā)表于 2010-06-22 13:21 |只看該作者
我是菜鳥看不懂。。。
同2樓一樣,真么用過&
水平有限吧,還沒涉及到這些知識。

論壇徽章:
154
2022北京冬奧會紀(jì)念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16賽季CBA聯(lián)賽之深圳
日期:2022-11-02 14:02:4515-16賽季CBA聯(lián)賽之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16賽季CBA聯(lián)賽之八一
日期:2023-11-04 19:23:5115-16賽季CBA聯(lián)賽之廣夏
日期:2023-12-13 18:09:34
9 [報告]
發(fā)表于 2010-06-24 14:31 |只看該作者
真不錯,謝謝分享。

論壇徽章:
0
10 [報告]
發(fā)表于 2010-06-25 14:50 |只看該作者
不錯,謝謝分享了!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP