對於值傳遞和引用傳遞,書本上的解釋比較繁瑣,而php面試總是會出現,下面我會透過一個生活的例子帶大家理解它們之間差異。
第一步
假設我們去飯店訂房間,我們把飯店的門牌號碼比喻成變數名,我們把房間裡住人數當作這個變數名賦值的過程
<?php $k1=2;//$k1号房间住了2个人 $k2=$k1;//恰巧今天$k1号房间维修,把$k1号房间的人放到$k2房间里面 $k1=10;//假设$k1维修好了,又住进10个人,那么这就是值传递。 echo "$k1号房间:".$k1."个人";//10 echo "$k2号房间:".$k2."个人";//1 ?>
值傳遞的特性:
#1、值相等
##也就是$k1給$k2房間裡的人是相等的。2、相互獨立、互不影響
這就是說,我$k1房間來多少客人和$k2房間客人來多少客人是互相不影響的。這就叫:"道不同不相為謀"。第二步
上面為例假設我們$k1這個房間被維修工掛上兩個門牌號碼$k1和$k2來理解
<?php $k1=2;//$k1号房间住了2个人 $k2=&$k1;//恰巧今天$k1号房间挂上"$k1"和“$k2”两个门牌号 $k1=10;//假设$k1又住进10个人,那么这就是引用传递。 echo "$k1号房间:".$k1."个人";//10 echo "$k2号房间:".$k2."个人";//10因为门牌$k1房间的客人就是门牌$k2里面的客人 ?>
引用傳遞的特點:
互相影響,也就是說$k1中來多少客人,$k2就是顯示多少客人,這就叫"拴在一條繩上的蚱蜢"。區別
1、使用上的差異
值傳遞的符號是=#引用傳遞符號是&2、意義上的區別
值傳遞是變數傳遞是互不影響的,而引用傳遞則是兩個變數指向同一空間相互影響的。 推薦教學:以上是php引用和拷貝的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!