剛開始學習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類 -- 記憶體位址
classperson
$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指標...