變量的傳值與傳引用


傳值:$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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM