1.變量的引用,php中的“ ”:
$a = hello world //定義一個變量,下面賦值給$b$b = $a; //這一步實際上原理是會將變量$a復制拷貝一份,也就是內存中重新申請一個地址存儲變量$b
注:在php中,使用 = 直接賦值,其實就是拷貝一份右邊的變量給$b,會生成一份內存空間,結果可能是同樣的內容在內存中兩份。
2、使用符號“ ”進行引用
$a = hello world $b =
注:使用引用,php引擎不會拷貝一份變量,其實就是將指針指向了$a在內存中的地址,$b中就是保存了這個指針。
所以使用引用的時候,把$b的值改變,$a也會跟著改變。
$a = hello world $b = $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 = $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教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答