Ⅰ 請說明php中傳值與傳引用的區別.什麼時候傳值什麼

傳值,
是把實參的值賦值給行參
那麼對行參的修改,不會影響實參的值
傳引用
真正的以地址的方式傳遞參數
傳遞以後,行參和實參都是同一個對象,只是他們名字不同而已
對行參的修改將影響實參的值
所謂值傳遞,就是說僅將對象的值傳遞給目標對象,就相當於;系統將為目標對象重新開辟一個完全相同的內存空間。
所謂引用,就是說將對象在內存中的地址傳遞給目標對象,就相當於使目標對象和原始對象對應同一個內存存儲空間。此時,如果對目標對象進行修改,內存中的數據也會改變。

Ⅱ php引用傳遞中的&什麼意思,有什麼用

如果書中說明不理解我就換種方式說,當年我看書上描述也不能立即懂:
這里個&是一個專修飾屬符號,
修飾誰的?修飾變數的。
修飾變數有什麼用?能夠直接找到這個變數的存儲位置。
如果你是變數,那這個&(取地址符)就是能夠提供你的家庭住址
現在有一個方法要知道你的名字
function you_name(你的名字){這里知道你是張三了,我還要給你改個名,你叫李四}
方法結束了,你知不知道我們在方法里給你改名了?你不知道,因為他沒告訴你。因為這個方法里用的是相當於你的鏡像,或者說是你的記錄,別人知道你叫張三。
那麼現在參數我改成(&你的名字),這相當於什麼你知道嗎,有一個叫方法的人,通過你的地址找到了你家,然後上門給你拽出來,掐著你脖子說,你現在叫李四,你知道不?你現在就改名叫李四,不然我方法就鯊了你。你反抗不了啊,方法走了,你現在就叫李四了。
這就是取地址符的意義,直接去計算機存儲地址找到這個變數的位置,直接對這個位置進行操作。就相當於對這個變數進行操作了。
如果你聽懂了,給個贊被~

Ⅲ PHP傳值和傳引用,傳地址的區別

傳值和傳引用、傳地址的區別:
1、傳值,是把實參的值賦值給行參
那麼對行參的修改,不會影響實參的值
2、傳地址

是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int
那麼傳地址以後,實參和行參都指向同一個對象
3、傳引用

真正的以地址的方式傳遞參數
傳遞以後,行參和實參都是同一個對象,只是他們名字不同而已
對行參的修改將影響實參的值

Ⅳ php里傳值和傳引用有什麼區別

傳值:是把實參的值賦值給形參,那麼對形參的修改,不會影響實參的值。
傳引用:
真正的以地址的方式傳遞參數傳遞以後,形參和實參都是同一個對象,只是他們名字不同而已對形參的修改將影響實參的值。

Ⅳ php對象 是引用傳遞嗎

是啊,按值來傳遞就是僅僅把值自傳遞過去,相當於傳遞的是值的拷貝,而按引用傳遞傳遞的是內存的地址。
在 PHP5 中,如果按引用傳遞,就是將 zval 的地址賦給另一個變數,這時,兩個變數都同時指向一個 zval 。而按值傳遞則是復制一個 zval,兩個變數指向兩個不同的 zval.你看過後很簡單吧以後不會可以向我一樣經常到後盾人平台找找相關教材看看就會了,希望能幫到你,給個點贊吧謝謝( ↷ ㉨ ↷)

Ⅵ php引用方式傳遞參數

你的結果是對的

$bar='111111111'; 這句如果換個寫法倒是

$bar .= '111111111'; //我想例題應該這樣寫吧

補:
$bar .= '111111111';
同於
$bar = $bar . '111111111';
這是php的語法,請查看手冊

Ⅶ PHP中傳值與傳引用的區別 能舉一個例子嗎

傳值的話,如果是非對象,會傳一個值的拷貝,對這個變數做任何改動都不影響原值。
傳引用或者傳對象,是傳真實的內存地址,對這個變數做的改動會影響原值。

function func1($a) {
$a = $a + 1;
}
function func2(&$a) {
$a = $a + 1;
}
$sample = 1;
func1($sample);
echo $sample; // 輸出 1

$sample = 1;
func2($sample);
echo $sample; // 輸出 2

Ⅷ 請說明PHP中傳值和傳引用的區別,什麼時候傳值什麼時候傳引用 謝謝 考試了--

傳值要重新構造一份原參數的拷貝
傳引用則不需要

傳值對參數的修改不會改變原參數
傳引用時可以直接修改原參數

至於什麼時候傳引用,這看你的需要。
如果你的參數對象比較大(佔用內存很多),而函數本身不需要修改原對象時,這個時候就推薦傳引用,可以省去臨時對象的構造開銷。
如果你有實際修改原參數的需要,那麼就只能傳引用了。

Ⅸ php中傳值與傳引用的區別

如果傳值是那麼兩個變數是佔用不同的內存空間,而傳引用則是同一個內存空間,實際就回是對同一個變答量進行操作。 傳值,原有的值 不會消失,不會改變,兩個變數分別佔用一個內存,傳引用,原值會被修改,兩個變數 只佔用一個內存空間

Ⅹ PHP 中傳值與傳引用有什麼區別

很大區別
傳值 就相當於復制一份 從新開辟一個內存存儲區域,這時候就是2個獨立專區域了.對每個區域改屬變另外一個區域不受影響.
傳址(傳引)就相當於多了一個入口,內存存儲區域不變.你對其中入口改變.都會改變其共同的內存空間內容
傳值比如:你(張三)是個個體,把你克隆出另外一個出來叫李四.
這時候我打李四,並沒有打張三,打張三,並沒打李四.是相互獨立的

傳引:就是你有一個身份證 叫張三,再去辦一個身份證叫李四,你就有2個身份證了,張三李四都帶標你.假如我KO了你.然後去派出所調解 你拿出張三.身份證那麼我打的就是張三,你拿出的是李四身份證我打的就是李四