首頁 > 後端開發 > php教程 > php 中傳回引用類型的方法程式碼範例

php 中傳回引用類型的方法程式碼範例

怪我咯
發布: 2023-03-13 22:36:01
原創
1286 人瀏覽過

php的引用(就是在變數或函數、物件等前面加上&符號) //最重要就是刪除引用的變量,只是引用的變數存取不了,但是內容並沒有銷毀在PHP 中引用的意思是:不同的名字訪問同一個變數內容.

這篇文章主要介紹了PHP中返回引用類型的方法,

<?php
 
$color = &#39;YellowGreen&#39;;
 
function &getRef() {
    global $color;
    return $color;
}
 
function getCopy() {
    global $color;
    return $color;
}
 
$colorRef = &getRef();
$colorRef = &#39;Blue&#39;;
 
//$colorCopy = getCopy();
//$colorCopy = &#39;Black&#39;;
 
 
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 並不會提高效能,有時候反而降低效能,所以不要想當然的使用這個特性來「優化」程式。

以上是php 中傳回引用類型的方法程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板