|
首先解釋賦值操作符=的行為,看下面的例子:
復制代碼 代碼如下:
$i = 0;
$j = $i;
$j = 0;
echo $j; // 打印輸出0
$arr = array(0);
$arr2 = $arr;
$arr2[0] = 1;
echo $arr[0]; //打印輸出0
class B
{
public $i = 0;
}
$b = new B();
$c = $b;
$c->i = 1;
echo($b->i); // 打印輸出1
從這個例子可以看出,如果=操作符右邊的變量為基本數據類型或者數組,那么=操作符把右邊變量的一份拷貝賦值給左邊變量;如果右邊變量不是基本數據類型或者數組,如class,那么=會把一個指向右邊變量的引用賦值給左邊變量。注意:是指向右邊變量的引用,而不是指向右邊變量所指的內容區域的引用;具體看下邊的例子
復制代碼 代碼如下:
$a = new A();
$b_a = $a;
$b_r = &$a;
$b_a = null;
var_dump($a); //打印 object(A)[2],$a所指向的內容還在
$b_r = null;
var_dump($a); // 打印 null,$a所指向的內容被清除了
上面的例子也說明了,如果用 $var = &$a 的方式賦值的話,用$var=null來銷毀變量$var的話事實上是把$var所指內容被設置null了,其實這句話也暗示了任何一個指向該內容區域的引用變量均可用來銷毀該內容區域的內容。所以,要銷毀變量$var的話用 unset($var) 。PS:事實上一這種方式賦值$var只是個引用,占用不了多少內存,要不要銷毀沒所謂,這里這是說下必須用unset的方式銷毀。
下面則是《用戶手冊》中的“引用的解釋”的例子:
$a =& $b;
下邊有這么一句解釋:
這意味著 $a 和 $b 指向了同一個變量。
注: $a 和 $b 在這里是完全相同的,這并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一個地方。
引用是什么?
復制代碼 代碼如下:
在 php 中引用意味著用不同的名字訪問同一個變量內容。這并不像 C 的指針,替代的是,引用是符號表別名。注意在 php 中,變量名和變量內容是不一樣的,因此同樣的內容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身
主站蜘蛛池模板:
国产人妻人伦精品熟女麻豆
|
国产精品久久人妻无码网站一区L
|
1000视频在线播放
|
超碰caoporn|
国产日韩精品SUV
|
最近日本MV字幕免费观看在线
|
国产亚洲精品a在线观看app
|
日本久久久免费高清
|
视频一区二区中文字幕
|
亚洲刺激视频
|
国产电影无码午夜在线播放
|
亚洲人成人77777在线播放
|
亚洲国产欧美在线人成aaaa20
|
他揉捏她两乳不停呻吟口述
|
午夜无码国产理论在线
|
青青伊人国产
|
小sao货水好多真紧h的视频
|
最新 国产 精品 精品 视频
|
高h浪荡文辣文神奇宝贝
|
日韩精品在线看
|
扒开黑女人p大荫蒂老女人
扒开粉嫩的小缝末成年小美女
|
李丽莎与土豪50分钟在线观看
|
免费又黄又硬又爽大片
|
欧美最猛性XXX孕妇
欧美最猛性xxxxx亚洲精品
|
97精品国偷拍自产在线
|
菠萝菠萝蜜免费播放高清
|
97在线免费观看视频
|
王晶经典三级
|
日韩一区二区三区免费体验
|
国产GV天堂亚洲国产GV刚刚碰
|
伊人精品影院
|
色戒2小时38分在线观看
|
久久99热成人精品国产
|
久久在精品线影院精品国产
|
熟妇内谢69XXXXXA片
|
在线免费观看国产视频
|
5278欧美一区二区三区
|
狠狠躁日日躁人人爽
|
4480YY无码午夜私人影院
|
亚洲一品AV片观看五月色婷婷
|
亚洲2023无矿砖码砖区
|