變量的傳值與傳引用

傳值:$b=$a   //將a變量的值傳值給b變量。

//調式傳值
$a=100;
$b=200;
$b=$a;
echo $b;//100
$a=300;
echo $b;//100
$b=300;
echo $a;//300
unset ($a);
echo $a;
echo $b;

傳引用: $b=&$a   //將a變量的地址傳遞給b變量。

//調式傳引用
$a=100;
$b=200;
$b=&$a;
echo $b;//100
$a=300;
echo $b;//300
$b=300;
echo $a;//300
unset ($a);
echo $a;
echo $b;

所以說,傳值只是傳值而已,兩者並沒有關係,當a發生改變時,b不會發生改變。

           傳引用就是將a跟b的地址指向同一個地址,只要有一個值發生改變,另一個也會發生改變,當其中一個值被註銷掉,另一個值得變量還是會保留。

當然函數參數傳遞時也可以按值傳遞或引用傳遞。

1.函數參數傳遞時也可以按值傳遞或引用傳遞。

function get_val(&$a,&$b){
$a=300;
$b=400;
}
$a=100;
$b=200;
get_val($a,$b);
echo $a;
echo $b;//有&符號結果是300,400,去掉&結果是100,200

2.全局變量需要在函數體中使用時,除了用參數傳遞方法,還可以在函數體中使用global聲明。或用$GLOBALS["a"]數組讀取。

function get_val(){
//global $a,$b;
//echo $a,$b;
echo $GLOBALS["a"],
$GLOBALS["b"];//這個是獲取全局變量
}
$a=100;
$b=200;
get_val();//調式結果爲100,200


發佈了41 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章