天天看點

php 指針概念 指針引用

PHP的的指針的特性:
1,用=&來把變量的位址傳給另一個變量,這樣,另一個變量就指向了同一個位址
2,用$c=$p;其中$p為指針,像這樣的指派,其實是把相當于讓$c引用了$p所指的變量,而不是位址
3,普通的=号是把一個變量的引用傳給另一個變量,如果源變量的内容不變,那麼引用它的變量的内容也不會變,即當沒有修改變量内容的時候,兩個變量是指向同一個位址,但當源變量修改時,引用它的變量就會把源變量的内容複制一份出來放到一個新的記憶體位址中,引用它的變量則是指向這個新建立的記憶體位址,用簡單的一句話概況就是:修改時複制
4,是以,回到(2),如果$p指向的内容發生了變化,那麼,也會自動複制一份$p原來的内容到一塊新的記憶體位址中,當用echo輸出$c的時候,輸出的内容還是$p的内容發生改變前的内容。
5,綜上所述,可以推導出(并且也經過實驗證明了),如果有$a,$b=&$a,那麼你修改a時,b的内容也會随之改變,如果你想再用c來引用b,并且在a改變時也能影響到c,那麼必須如下這樣寫:
     $a="aa";
     $b=&$a;
     $c=&$b; 
     如此這般,當a變化時,用echo輸出b和c的結果和a的内容是一樣的,當然這樣是為了說明php指針的特性,并不特意想說明他在具體應用中會有什麼用,隻是為了更加深刻的了解php的指針。
     如果上面的三行代碼最後一行變成:$c=$b;
     那麼在a發生改變時,輸出c的值還是a原來的值。      
材料來源:http://www.hackbase.com/tech/2009-03-27/51854.html php指針