php引用和拷貝的區(qū)別知識(shí)點(diǎn)總結(jié)
對(duì)于值傳遞和引用傳遞,書(shū)本上的解釋比較繁瑣,而php面試中總會(huì)出現(xiàn),下面我會(huì)通過(guò)一個(gè)生活的例子帶大家理解它們之間區(qū)別。
第一步
假設(shè)我們?nèi)ゾ频暧喎块g,我們把酒店的門(mén)牌號(hào)比作變量名,我們把房間里住人數(shù)當(dāng)做給這個(gè)變量名賦值的過(guò)程
<?php $k1=2;//$k1號(hào)房間住了2個(gè)人 $k2=$k1;//恰巧今天$k1號(hào)房間維修,把$k1號(hào)房間的人放到$k2房間里面 $k1=10;//假設(shè)$k1維修好了,又住進(jìn)10個(gè)人,那么這就是值傳遞。 echo "$k1號(hào)房間:".$k1."個(gè)人";//10 echo "$k2號(hào)房間:".$k2."個(gè)人";//1 ?>
值傳遞的特點(diǎn):
1、值相等
也就是$k1給$k2房間里的人是相等的。
2、相互獨(dú)立、互不影響
這就是說(shuō),我$k1房間來(lái)多少客人和$k2房間客人來(lái)多少客人是互相不影響的。這就叫:"道不同不相為謀"。
第二步
以上面為例 假設(shè)我們$k1這個(gè)房間被維修工掛上兩個(gè)門(mén)牌號(hào)$k1和$k2來(lái)理解
<?php $k1=2;//$k1號(hào)房間住了2個(gè)人 $k2=&$k1;//恰巧今天$k1號(hào)房間掛上"$k1"和“$k2”兩個(gè)門(mén)牌號(hào) $k1=10;//假設(shè)$k1又住進(jìn)10個(gè)人,那么這就是引用傳遞。 echo "$k1號(hào)房間:".$k1."個(gè)人";//10 echo "$k2號(hào)房間:".$k2."個(gè)人";//10因?yàn)殚T(mén)牌$k1房間的客人就是門(mén)牌$k2里面的客人 ?>
引用傳遞的特點(diǎn):
相互影響,也就是說(shuō)$k1中來(lái)多少客人,$k2就是顯示多少客人,這就叫"拴在一條繩上的螞蚱"。
區(qū)別
1、使用上的區(qū)別
值傳遞的符號(hào)是=
引用傳遞符號(hào)是&
2、意義上的區(qū)別
值傳遞是變量傳遞是互不影響的,而引用傳遞則是兩個(gè)變量指向同一空間相互影響的。
以上就是php引用和拷貝的區(qū)別的詳細(xì)內(nèi)容,感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
Linux平臺(tái)PHP5.4設(shè)置FPM線程數(shù)量的方法
這篇文章主要介紹了Linux平臺(tái)PHP5.4設(shè)置FPM線程數(shù)量的方法,較為詳細(xì)的分析了Linux平臺(tái)php5.4設(shè)置FPM的相關(guān)參數(shù)、功能及使用技巧,需要的朋友可以參考下2016-11-11
flash用php連接數(shù)據(jù)庫(kù)的代碼
flash用php連接數(shù)據(jù)庫(kù)的代碼,需要的朋友可以參考下。2011-04-04
php7連接MySQL實(shí)現(xiàn)簡(jiǎn)易查詢程序的方法
這篇文章主要給大家介紹了關(guān)于php7連接MySQL實(shí)現(xiàn)簡(jiǎn)易查詢程序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
PHP實(shí)現(xiàn)帶重試功能的curl連接示例
這篇文章主要介紹了PHP實(shí)現(xiàn)帶重試功能的curl連接方法,結(jié)合實(shí)例形式分析了php使用curl實(shí)現(xiàn)重復(fù)連接的方法,需要的朋友可以參考下2016-07-07
關(guān)于Sphinx創(chuàng)建全文檢索的索引介紹
本篇文章是對(duì)使用Sphinx創(chuàng)建全文檢索的索引進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

