怎么在PHP中返回引用類型-創(chuàng)新互聯(lián)

怎么在PHP中返回引用類型?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比羅湖網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式羅湖網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋羅湖地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

php有什么用

php是一個(gè)嵌套的縮寫名稱,是英文超級文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。

返回引用,在定義和調(diào)用的時(shí)候 & 都不可以省略。

這是個(gè)比較容易混淆的概念,如果不是出于某些特殊的原因,建議還是不要使用。

說他很容易混,是因?yàn)?Reference 在 PHP5 中的變化,造成其在 PHP4/PHP5 中表現(xiàn)的行為差異比較大。

舉個(gè)例子說明:


復(fù)制代碼 代碼如下:

<?php
 
$color = 'YellowGreen';
 
function &getRef() {
    global $color;
    return $color;
}
 
function getCopy() {
    global $color;
    return $color;
}
 
$colorRef = &getRef();
$colorRef = 'Blue';
 
//$colorCopy = getCopy();
//$colorCopy = 'Black';
 
 
var_dump($color);
var_dump($colorRef);
//var_dump($colorCopy);


運(yùn)行一遍上面的代碼,差不多就明白了,使用 &getRef() 將把 $colorRef 綁定到 $color 上面,也就是說 $colorRef 和 $color 兩個(gè)變量是指向同一個(gè)值了。當(dāng)改變其中一個(gè)值時(shí),另一個(gè)也會(huì)跟著變化。

如果 $color 是一個(gè)數(shù)組,也是一樣的,上面的代碼在 PHP4/5 的任意版本中,表現(xiàn)行為都是一樣的。

當(dāng) $color 是一個(gè) Object 的時(shí)候,問題就出現(xiàn)了。

PHP4 中 getCopy 仍然會(huì)返回一個(gè)復(fù)制的 Object;&getRef() 返回引用。

PHP5 中就有點(diǎn)另類了,
新的 PHP5.2,行為和 PHP4 一樣,getCopy() 返回復(fù)制,&getRef() 返回引用。
但是某些的 PHP5 的版本這里稍微有些不同,比如 PHP5.1.6,表現(xiàn)為 getCopy() 和 &getRef() 都是引用。

這里 getCopy() 和 &getRef() 是兩個(gè)全局函數(shù),如果放到類里面成為類的 Member functions,那又會(huì)是另外一番景象……

PS:返回 References 并不會(huì)提高性能,有時(shí)候反而降低性能,所以不要想當(dāng)然的使用這個(gè)特性來“優(yōu)化”程序。

看完上述內(nèi)容,你們掌握怎么在PHP中返回引用類型的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站欄目:怎么在PHP中返回引用類型-創(chuàng)新互聯(lián)
新聞來源:http://muchs.cn/article6/coscig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、微信小程序網(wǎng)站改版、用戶體驗(yàn)商城網(wǎng)站、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)