PHP物件傳值 引用傳值

2022-07-30 23:57:25 字數 805 閱讀 4137

物件傳值本質上是引用傳值,將乙個物件變數($a)賦值給另個變數($b),實際上是將$a儲存的物件記憶體引用位址賦值$b,此時兩個變數指向的就是乙個物件。其中乙個變數傳送改變,另乙個也會跟著改變。和引用變數乙個道理。

1. 物件傳值示例

物件傳值本質上就是引用傳值

$a = new user;

$b = $a;//物件傳值

var_dump($a, $b);

$b->name = '張三';

var_dump($a, $b);

class user

執行結果,其實第一次列印就可以看出來$a$b是乙個物件,因為物件識別符號一樣(都是 1)

2. 解釋說明

如果將乙個物件賦值給變數($a),$a實際上存的是物件的記憶體引用位址,而不是物件

物件存在堆記憶體中,記憶體引用位址存在棧記憶體中,所以將$a賦值給另乙個變數$b

實際上是將 $a 存的物件的記憶體引用位址賦值給了 $b,也就是 $a 和 $b 存的是同乙個引用位址,

所以兩個變數實際上是乙個物件,因此 $b 發生改變, $a 也跟著改變

php值傳參,引用傳參以及 物件傳參

傳值 是把實參的值賦值給行參 那麼對行參的修改,不會影響實參的值 說明 傳值 根copy是一樣的。打個比方,我有一橦房子,我給你建築材料,你建了乙個根我的房子一模一樣的房子,你在你的房子做什麼事都不會影響到我,我在我的房子裡做什麼事也不會影響到你,彼此獨立。傳引用 讓我想起了上大學時學習c語言的指標...

php引用傳值

from php的引用 就是在變數或者函式 物件等前面加上 符號 在php 中引用的意思是 不同的名字訪問同乙個變數內容.與 語言中的指標是有差別的 語言中的指標裡面儲存的是變數的內容在記憶體中存放的位址 變數的引用 php 的引用允許你用兩個變數來指向同乙個內容 a abc b a echo a ...

PHP的傳值與引用,php傳值和傳引用區別

php傳值 在函式範圍內,改變變數值得大小,都不不會影響到函式外邊的變數值。testa 1 定義變數a testb 2 定義變數b testb testa 變數a賦值給變數b echo testb 顯示為1 傳引用 類似於c語言的指標了,感覺差不多。打個比方,我有一橦房子,我給你一把鑰匙,我們二個都...