這貌似是乙個極其簡單的問題,還用得著專門寫一篇博文?各位看官,最初我也這麼認為,但這的確蒙蔽了你那水靈靈的小眼睛,不妨看看什麼是引用?
$a = 10;
$b = &$a;
$b = 20;
var_dump($a,$b);
在這段極其簡單的**中,$b是$a的引用,也即是別名,修改$b,$a會變,反之亦然。這就是所謂的引用,那物件是不是也是這樣的呢?
class a
$a = new a();
$a->num = 20;
function demo($b)
demo($a)
var_dump($a);
你會發現兩次輸出一樣,那這是不是說明物件做函式引數時是引用傳參呢?在這一點上不得不說千鋒的學生的確是勤學好問,我剛開始以為是引用傳參,但同學提出如果你把demo裡修改為:
function demo($b)
兩次輸出並不一樣!這是為什麼呢?如果從c語言角度講,php裡的任何變數,包括物件都是指標,物件做引數相當於二重指標,所以當$b指向乙個全新的物件後,並不影響$obj,所以物件做函式引數並不是引用傳參!又這麼一幫勤學好問的學生,整個水準都不一樣了。
網際網路+時代,時刻要保持學習,攜手千鋒
php,dream it possible。
php中物件是引用型別嗎?
這貌似是乙個極其簡單的問題,還用得著專門寫一篇博文?各位看官,最初我也這麼認為,但這的確蒙蔽了你那水靈靈的小眼睛,不妨看看什麼是引用?a 10 b a b 20 var dump a,b 在這段極其簡單的 中,b是 a的引用,也即是別名,修改 b,a會變,反之亦然。這就是所謂的引用,那物件是不是也是...
PHP中物件是按值傳遞還是按引用傳遞?
1.首先,什麼是按值傳遞和按引用傳遞?按值傳遞就是僅僅把值傳遞過去,相當於傳遞的是值的拷貝,而按引用傳遞傳遞的是記憶體的位址。按引用傳遞的特點 a 2 b a 按引用傳遞 a 1 echo b 1 b 3 echo a 3 2.現證明php中物件不是按引用傳遞 class test test1 ne...
php陣列是值傳遞,物件是引用傳遞
例項 1 陣列值傳遞 function main function change cc main output array 2 2 陣列引用傳遞 function main function change cc main outpout array 1 3 類物件值傳遞 class ppfuncti...