首頁 >後端開發 >php教程 >php變數的引用有哪些方法? php變數的引用機制的方法總結

php變數的引用有哪些方法? php變數的引用機制的方法總結

不言
不言原創
2018-08-18 17:55:323329瀏覽

本篇文章帶給大家的內容是關於php變數的引用有哪些方法? php變數的引用機制的方法總結,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1.變數的引用,php中的「&」:

$a  = "hello world";//定义一个变量,下面赋值给$b
$b = $a;            //这一步实际上原理是会将变量$a复制拷贝一份,也就是内存中重新申请一个地址存储变量$b

註:在php中,使用"=" 直接賦值,其實就是拷貝一份右邊的變數給$b,會產生一份記憶體空間,結果可能是同樣的內容在記憶體中兩份。

2、使用符號「&」進行引用

$a  = "hello world";
$b = &$a;

註:使用引用,php引擎不會拷貝一份變量,其實就是將指標指向了$a在記憶體中的位址,$b中就是保存了這個指標。
所以使用引用的時候,把$b的值改變,$a也會跟著改變。

$a  = "hello world";
$b = &$a;
$b = "test new value";  //把b的值改掉,a的值也会跟着改变
echo $a;                //输出test new value,因为改变了b的值也会改变a的值。

#經常在定義函數的時候看到像這樣的情況:

function test (&$param){
    $param++;
}
$k = 8;
test($k);
echo $k; //结果$k的值被函数里面改变了,输出9。

註:$param前面帶有引用,所以傳入進來的參數並不會在記憶體中拷貝一份,而是直接對原來的記憶體空間進行引用。所以:如果裡對使用符號&傳入進來的變數值進行修改了,那麼也會改變原來的記憶體空間中的值

3、銷毀變數的時候。並不會改變原來的值。

$a = 'd';
$b = &$a;
$b = 8;   
var_dump($b,$a);   //因为是引用了,所以把b的值改掉,a的值也跟着改为8了。
unset($b);         //调用unset删除b变量,a变量不会删除
var_dump($b,$a);   //输出null和8

註:呼叫unset刪除$b變數的時候,php引擎從變數符號表中發現:我要刪除的變數$b原來是引用了變數$a,這不好刪除啊,因為一刪除導致$a變數也沒了,所以就先把$a變數拷貝一份後在刪除$b變數。

相關推薦:

php利用open,fwrite實作匯出多種格式的檔案(程式碼)

phpExcel在匯出檔案時記憶體溢出的解決方法

以上是php變數的引用有哪些方法? php變數的引用機制的方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn