国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP中返回引用類型的方法

2024-05-04 23:33:51
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP中返回引用類型的方法,這是個比較容易混淆的概念,如果不是出于某些特殊的原因,建議還是不要使用,需要的朋友可以參考下
 

返回引用,在定義和調用的時候 & 都不可以省略。

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

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

舉個例子說明:

復制代碼代碼如下:

<?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);
 

 

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

如果 $color 是一個數組,也是一樣的,上面的代碼在 PHP4/5 的任意版本中,表現行為都是一樣的。

當 $color 是一個 Object 的時候,問題就出現了。

PHP4 中 getCopy 仍然會返回一個復制的 Object;&getRef() 返回引用。

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

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

PS:返回 References 并不會提高性能,有時候反而降低性能,所以不要想當然的使用這個特性來“優化”程序。

有問題看看手冊大部分時候都可以找到答案:

http://cn.php.net/manual/en/language.references.php


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诸城市| 通州区| 林甸县| 龙陵县| 临泉县| 册亨县| 永丰县| 台州市| 星子县| 祁门县| 疏附县| 读书| 徐闻县| 南宁市| 上犹县| 南京市| 阿拉尔市| 通江县| 锡林浩特市| 贵州省| 高尔夫| 雅安市| 泌阳县| 边坝县| 凤凰县| 长寿区| 内丘县| 陆川县| 祁阳县| 青浦区| 兴国县| 方山县| 沾益县| 绥棱县| 利川市| 绩溪县| 蒲江县| 昌黎县| 汽车| 伊春市| 宁化县|