日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
探討PHP引用&符號的一些注意問題

PHP引用&符號是一個(gè)比較難掌握的知識(shí)點(diǎn)。新手們在實(shí)際編寫代碼時(shí)一定要多注意這一點(diǎn),因?yàn)槿绻銓HP引用&符號的使用理解錯(cuò)誤,將會(huì)導(dǎo)致你所編寫的整個(gè)代碼出現(xiàn)錯(cuò)誤。

創(chuàng)新互聯(lián)專注于成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

#t#很多人誤解php中的引用跟C當(dāng)中的指針一樣,事實(shí)上并非如此,而且很大差別。C語言中的指針除了在數(shù)組傳遞過程中不用顯式申明外,其他都需要使用*進(jìn)行定義,而php中對于地址的指向(類似指針)功能不是由用戶自己來實(shí)現(xiàn)的,是由Zend核心實(shí)現(xiàn)的,PHP引用&符號采用的是“寫時(shí)拷貝”的原理,就是除非發(fā)生寫操作,指向同一個(gè)地址的變量或者對象是不會(huì)被拷貝的,比如下面的代碼:

 
 
 
  1. $a = array('a','c'...'n');  
  2. $b = $a; 

如果程序僅執(zhí)行到這里,$b和$b是相同的,但是并沒有像C那樣,$a和$b占用不同的內(nèi)存空間,而是指向了同一塊內(nèi)存,這就是php和c的差別,并不需要寫成$b=&$a才表示$b指向$a的內(nèi)存,zend就已經(jīng)幫你實(shí)現(xiàn)了引用,并且zend會(huì)非常智能的幫你去判斷什么時(shí)候該這樣處理,什么時(shí)候不該這樣處理。

如果在后面繼續(xù)寫如下代碼,增加一個(gè)函數(shù),通過PHP引用&符號的方式傳遞參數(shù),并打印輸出數(shù)組大小。

 
 
 
  1. function printArray(&$arr) //引用傳遞  
  2.     {  
  3.         print(count($arr));  
  4.     }  
  5.  
  6.      printArray($a); 

上面的代碼中,我們通過PHP引用&符號把$a數(shù)組傳入printArray()函數(shù),zend引擎會(huì)認(rèn)為printArray()可能會(huì)導(dǎo)致對$a的改變,此時(shí)就會(huì)自動(dòng)為$b生產(chǎn)一個(gè)$a的數(shù)據(jù)拷貝,重新申請一塊內(nèi)存進(jìn)行存儲(chǔ)。這就是前面提到的“寫時(shí)拷貝”概念。

如果我們把上面的代碼改成下面這樣:

 
 
 
  1. function printArray($arr)  //值傳遞  
  2.     {  
  3.         print(count($arr));  
  4.     }  
  5.  
  6.      printArray($a); 

上面的代碼直接傳遞$a值到printArray()中,此時(shí)并不存在引用傳遞,所以沒有出現(xiàn)寫時(shí)拷貝。

大家可以測試一下上面兩行代碼的執(zhí)行效率,比如外面加入一個(gè)循環(huán)1000次,看看運(yùn)行的耗時(shí),結(jié)果會(huì)讓你知道不正確使用PHP引用&符號會(huì)導(dǎo)致性能下降30%以上。


本文標(biāo)題:探討PHP引用&符號的一些注意問題
本文URL:http://www.dlmjj.cn/article/ccscopj.html