亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php的引用不是指針到底是什么,看看這個輸出結果

php的引用不是指針到底是什么,看看這個輸出結果

慕的地6264312 2019-04-07 11:19:08
上面是我自己運行的結果。手冊上是這么說的,不知道說的是什么:引用不是什么如前所述,引用不是指針。這意味著下面的結構不會產生你預期的效果:這將使foo函數中的$var變量在函數調用時和$bar綁定在一起,但接著又被重新綁定到了$GLOBALS["baz"]上面。不可能通過引用機制將$bar在函數調用范圍內綁定到別的變量上面,因為在函數foo中并沒有變量$bar(它被表示為$var,但是$var只有變量內容而沒有調用符號表中的名字到值的綁定)。自己的理解是$c已經是一個引用了,PHP不允許再給它賦上另一個引用。如果再給它賦上另一個引用,那么這個引用$c就跟$a變量自動斷開聯系,所以輸出了兩個2。不知道這樣理解對不對
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

你理解的是對的。引用也是相對于整數,浮點型的一種數據類型,給它賦另外一個值當然就把原本的給覆蓋掉了。另外為什么unset()函數可以斷開引用的關系,這是這么個道理。
                            
查看完整回答
反對 回復 2019-04-07
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

不知道你理解得意思但這個就是C中指針得標準結果吧第一個形參是個引用,但$a傳的是變量,變量內存得內容是2,&$a才是指針,&$a表達式得值是a代表得內存得地址第一個foo中你傳遞一個$a就是傳了個2,這那是a得地址啊。而且就算是c語言中foo(int*p)你調用時foo(&a);然后你a=2,最后在printa,他輸出得也是2啊,你的print星a(這個星打不出來)!
你不傳地址怎么可能改變外部變量呢?你得傳地址!我還真就沒理解php中的引用,和c中的指針有什么區別
                            
查看完整回答
反對 回復 2019-04-07
  • 2 回答
  • 0 關注
  • 510 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號