PHP 變數的傳值方式
阿新 • • 發佈:2020-07-19
<?php 傳值賦值
$a = 3; $b = 5; $a = $b; // $a = $b發生了什麼? 把$b 的值,讀出來,再把值放到$a的空間裡,即賦值給$b, echo $b; //5 echo $a, $b; // 5 5 // 因是將$b的值取出來賦值給$a的,所以 $a 和$b 兩者之間是沒有關係的,因$a和$b的值各自放在自己的記憶體空間。 $b = 99; echo $a, $b; //5 99 // // 既 把$b的值傳遞給$a。 以上就是傳值賦值
引用賦值 $a = 3; $b = 5; $a = &$b; //此事發生了什麼 ? 既 $a指向了$b 的記憶體地址; // 既兩個變數指向了同一個記憶體空間,既兩者是有聯絡的, echo $a, $b, '<br>'; //5 5 $b = 9; echo $a, $b, '<br>'; //9 9 // 注意::因$a和$b 都指向同一塊記憶體空間, 認你修改其中一個變數的值,記憶體空間儲存的值都將會變化,所以不管是修改$a還是$b ,他們最終的值都是一樣的、 unset($b); echo $a; //9 // 為什麼是9 呢? 因為$a和$b 兩個變數指向同一個地址 // 因為變數的銷燬機制是, 當某段地址存的值,有一個變數指向他的時候就不會被銷燬 則, // $b 銷燬了,但是$a, 沒有銷燬 則$a為9