php的指標引用

2021-08-27 16:36:47 字數 695 閱讀 8764

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原來的值。

php引用和指標的區別

具體 1 從現象上看,指標在執行時可以改變其所指向的值,而引用一旦和某個物件繫結後就不再改變。這句話可以理解為 指標可以被重新賦值以指向另乙個不同的物件。但是引用則總是指向在初始化時被指定的物件,以後不能改變,但是指定的物件其內容可以改變。2 從記憶體分配上看,程式為指標變數分配記憶體區域,而不為引...

php 引用不是指標

指標會存放位址值 引用僅僅是乙個標識 b 3 b 就是 globals b 的引用,相當於是 b globals b class foo obj new foo myvalue obj getvalue myvalue is a reference to obj value,which is 42....

C 中的指標 引用 指標引用

在c 指標的用處很大,可以快讀的訪問位址空間,而且本身不佔太大記憶體。指標操作在引數傳遞的時候非常方便。既可以作為傳入引數,又可以作為返回值。但是可不可作為函式的傳出引數呢?下面通過乙個例子來說明。教室裡面包含多個老師,每個老師管理多個學生 學生類 pragma once include class...