本篇文章帶給大家的內容是關於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實作匯出多種格式的檔案(程式碼)
以上是php變數的引用有哪些方法? php變數的引用機制的方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!