對(duì)象傳遞:一種說(shuō)法是“PHP對(duì)象是通過(guò)引用傳遞的”,更準(zhǔn)確的說(shuō)法是別名(標(biāo)識(shí)符)傳遞,即它們都保存著同一個(gè)標(biāo)識(shí)符(ID)的拷貝,這個(gè)標(biāo)識(shí)符指向同一個(gè)對(duì)象的真正內(nèi)容,與引用(&)有質(zhì)的區(qū)別,請(qǐng)比較下例中行11和行18的輸出結(jié)果。
1 <?php 2 class A { 3 public $foo = 1; 4 } 5 6 $a = new A; 7 $b = $a; // $a ,$b都是同一個(gè)標(biāo)識(shí)符的拷貝 ($a) = ($b) = <id> 8 $b->foo = 2; 9 echo $a->foo."\n";//210 $b = null;11 echo $a->foo."\n";//212 13 $c = new A;14 $d = &$c; // $c ,$d是引用 ($c,$d) = <id>15 $d->foo = 2;16 echo $c->foo."\n";//217 $d = null;18 echo $c->foo."\n";//Notice: Trying to get property of non-object19 20 $c = new A;21 $d = &$c; // $c ,$d是引用 ($c,$d) = <id>22 $d->foo = 2;23 echo $c->foo."\n";//224 unset($d); //unset()刪除引用,$c = <id>25 echo $c->foo."\n";//226 27 $e = new A;28 function foo($obj) {29 // ($obj) = ($e) = <id>30 $obj->foo = 2;31 }32 foo($e);33 echo $e->foo."\n";//2
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26