php中傳值與傳引用的區別,PHP 中傳值與傳引用有什麼區別

時間 2021-09-14 04:23:38

1樓:

傳值的話,如果是非物件,會傳一個值的拷貝,對這個變數做任何改動都不影響原值。

傳引用或者傳物件,是傳真實的記憶體地址,對這個變數做的改動會影響原值。

function func1($a)

function func2(&$a)

$sample = 1;

func1($sample);

echo $sample; // 輸出 1$sample = 1;

func2($sample);

echo $sample; // 輸出 2

2樓:匿名使用者

之前回答過一個同樣的問題,粘過來再用一次:

傳值的話,如果是非物件,會傳一個值的拷貝,對這個變數做任何改動都不影響原值。

傳引用或者傳物件,是傳真實的記憶體地址,對這個變數做的改動會影響原值。

function func1($a)

function func2(&$a)

$sample = 1;

func1($sample);

echo $sample; // 輸出 1$sample = 1;

func2($sample);

echo $sample; // 輸出 2

3樓:林丹彩偉

簡單的說,在陣列中傳值時,變數的值是不會產生變化的,而傳引用的話,變數的值可能會變化,例如

<?php

$var = 2;

//值傳遞

function a($v)

echo $var; //輸出2

a($var);

echo $var;//仍輸出2

?>

<?php

$var = 2;

//引用傳遞

function a(&$v)

echo $var; //輸出2

a($var);

echo $var;//輸出4

?>

什麼時候傳值,什麼時候傳引用,沒有具體的規律,具體問題具體分析

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

4樓:匿名使用者

如果bai

傳值是那麼兩個變du量是佔用不同的記憶體空zhi間,而傳dao引用則是同一個內專存空間,實際屬

就是對同一個變數進行操作。 傳值,原有的值 不會消失,不會改變,兩個變數分別佔用一個記憶體,傳引用,原值會被修改,兩個變數 只佔用一個記憶體空間

5樓:匿名使用者

按值傳遞:函式範圍內對值的任何改變在函式外部都會被忽略按引用傳遞:函式版範圍內對值的任何改變權在函式外部也能反映出這些修改優缺點:

按值傳遞時,php必須複製值。特別是對於大型的字串和物件來說,這將會是一個代價很大的操作。

按引用傳遞則不需要複製值,對於效能提高很有好處。 如果不想改變原變數的值的時候就傳值,如果可以讓函式改變了原變數的值就可以引用傳值

6樓:好程式設計師

傳值和傳引用、傳抄地址的區別

襲:1、傳值,是把實參的值賦值bai給行參du那麼對行參的zhi修改,不會影響實參的值

2、傳地址dao

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

真正的以地址的方式傳遞引數

傳遞以後,行參和實參都是同一個物件,只是他們名字不同而已對行參的修改將影響實參的值

7樓:匿名使用者

傳值要重新bai構造一份原參du

數的拷貝

傳引用則不需要zhi

傳值對引數

php 中傳值與傳引用有什麼區別

php中傳值與傳引用的區別。什麼時候傳值什麼時候傳引用?

8樓:匿名使用者

傳值:函式內對傳送變數修改不影響被傳變數的值(用傳送值對函式的內的變數重新賦值)

引用:傳送變數的引用,函式內的任何操作等同於對傳送變數的操作,傳送大型變數時效率高!

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

9樓:只是無良

傳值,是把來實參的值賦值自給行參

那麼對行參的修改,不會影響實參的值

傳引用真正的以地址的

方式傳遞引數

傳遞以後,行參和實參都是同一個物件,只是他們名字不同而已對行參的修改將影響實參的值

所謂值傳遞,就是說僅將物件的值傳遞給目標物件,就相當於copy;系統將為目標物件重新開闢一個完全相同的記憶體空間。

所謂引用,就是說將物件在記憶體中的地址傳遞給目標物件,就相當於使目標物件和原始物件對應同一個記憶體儲存空間。此時,如果對目標物件進行修改,記憶體中的資料也會改變。

說明php中傳值與傳引用的區別,並說明傳值什麼時候傳引用

10樓:匿名使用者

按值bai

傳遞:函式範圍內

du對值的任何改變在函式外部都會

zhi被忽略

按引用傳遞:

dao函式範圍內對值回的任何改變在函式外部答也能反映出這些修改優缺點:按值傳遞時,php必須複製值。特別是對於大型的字串和物件來說,這將會是一個代價很大的操作。

按引用傳遞則不需要複製值,對於效能提高很有好處。

php裡傳值和傳引用有什麼區別

11樓:匿名使用者

傳值:是把實參的值賦值給形參,那麼對形參的修改,不會影響實參的值。

傳引用:

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

傳引用就是傳地址嗎,傳值和傳引用,傳地址的區別是什麼

傳值,是把實參的值賦值給行參 那麼對行參的修改,不會影響實參的值 傳地址 是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int 那麼傳地址以後,實參和行參都指向同一個物件 傳引用 真正的以地址的方式傳遞引數 傳遞以後,行參和實參都是同一個物件,只是他們名字不同而已 對行參的修改將影響實參的值...

C 中返回引用和返回值的區別,C 引用返回值 與 返回指標

通常的返回機制將返回值複製到臨時儲存區域中,隨後呼叫程式將訪問該區域.返回引用則程式則呼叫程式將直接訪問返回值.通常引用將指向傳遞給函式的引用,因此呼叫函式實際上是直接訪問自己的一個變數.比如const int fun int a,const int b int x 1,y 2,z z fun x,...

jsp中session傳值的問題

session.setattribute mytime new date 設定session session.getattribute mytime 取得session 利用超連線傳值好象很容易出現亂碼 jsp中,如何從session中取值和存值?session是jsp的內建物件,所以你可以直接寫在...