PHP 傳值和傳引用 傳位址的區別

2021-08-08 04:02:21 字數 598 閱讀 6013

傳值,

是把實參的值賦值給行參

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

傳位址是傳值的一種特殊方式,只是他傳遞的是位址,不是普通的如int

那麼傳位址以後,實參和行參都指向同乙個物件

傳引用真正的以位址的方式傳遞引數

傳遞以後,行參和實參都是同乙個物件,只是他們名字不同而已

對行參的修改將影響實參的值  

$a = "123";

$b = &$a;

echo $a."-".$b; // 輸出:123-123

echo "

";  $b = "456465"; // 輸出:456465-456465

echo $a."-".$b;

// 結論 :

// php 傳引用時 形參 發聲改變的時候 實參也發生改變;

僅討論一下值傳遞和引用:

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

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

PHP傳值和傳引用 傳位址的區別

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

php傳值,傳位址,傳引用的區別

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

傳值 傳位址 傳引用 的區別

傳值 傳位址 傳引用 1 傳值 優點 函式的 不會影響外部的實參 可讀性較高 缺點 傳參效率低 不能通過形參改變實參 對實參有保護作用 void swap int x,int y 2 傳位址 優點 傳參效率高 傳位址只需要4個位元組 確定 傳值變數大小不確定,有可能佔很大空間 可以通過形參改變實參 ...