關於php變數的賦值和引用的區別

2022-04-12 15:06:00 字數 1066 閱讀 2329

剛開始學習php,發現有些地方和js語法不同,所以記錄下來。

這篇文章是總結php中變數賦值和引用的區別。

我們知道,js中,原始型別的賦值,是將值直接複製給變數;引用型別的賦值,是將記憶體位址複製給變數。至於這兩者的區別,我就不講了。

這裡,我只總結哪些是直接賦值,哪些是複製的記憶體位址。

1、原始型別 -- 直接賦值

$name1 = '

sky'

;$name2 =$name1;

$name2 = '

fly'

;echo $name1.

''.$name2; //

sky fly

2、陣列array-- 直接賦值

$arr1 = array(0, 1, 2, 3

);$arr2 =$arr1;

$arr2[

0] = 6

;echo $arr1[

0].'

'.$arr2[0]; //

0 6

3、class類 -- 記憶體位址

class

person

$person1 = new

person();

$person2 =$person1;

$person2->name = '

moon';

echo $person1->name.'

'.$person2->name; //

moon moon

然後,php中規定,使用「&」符號,可以將普通賦值改成記憶體位址,看下面**

$name1 = '

sky'

;$name2 = &$name1;  //&符號的使用

$name2 = '

fly'

;echo $name1.

''.$name2; //

fly fly

PHP變數引用賦值與變數賦值變數的區別

變數預設總是傳值賦值。那也就是說,當將乙個表示式的值賦予乙個變數時,整個原始表示式的值被賦值到目標變數。這意味著,例如,當乙個變數的值賦予另外乙個變數時,改變其中乙個變數的值,將不會影響到另外乙個變數。有關這種型別的賦值操作,請參閱表示式一章。foo abc b foo b my name is b...

關於PHP的變數引用

變數的引用,其實就是不同名字的變數指向同乙個記憶體位址的內容。通俗了說,黃河也叫濟水。指的是同一條河流,現代人都叫黃河,就相當於 unset 濟水 可是黃河是存在的,只是刪掉了 濟水 這個名字而已。先秦時期的荀子在辯論 白馬飛馬 等哲學論題時就提出了名實之間劃定界限,一物可有多名,而多名並非多物。言...

詳解PHP變數傳值賦值和引用賦值變數銷毀

b 200 var dump a,b int 100 int 200 php中,上面的 變數是怎麼存放的呢?上面的 變動下,將變數b賦值給變數a,會發生什麼?b 200 a b 多了這個 var dump a,b int 200 int 200 問題來了,a b,那麼是將變數a的指標指向了變數b指標...