2013年4月1日 星期一

[PHP]傳址與傳值呼叫

PHP函數在傳遞參數時,可以指定使用的參數傳遞方式,PHP提供兩種參數傳遞方式,如下表所示:

呼叫方式
說明
傳值呼叫(call By Value
將變數的值傳入函數,並不會更變原來的值
傳址呼叫(call By Reference
將變數實際儲存的位址傳入,在函數變更參數值,也會同時更變傳入的變數值




傳址的意思是參考至某一個記憶體的位址,讓你可以設定一個變數,而很多個變數去參考它,而變數值改變,所有的參考變數也會跟著變。

設定傳址的變數在最前面加上一個 符號就可以了

Example1
";

//使用傳址的方式
echo "傳址:";
$val1 = "Hello World";
$val2 = &$val1;
$val3 = &$val2;
$val1 = "Show Me";
echo $val1 . "--" . $val2 . "--" . $val3 . "
";
?>



執行後:
傳值:Show Me--Hello World--Hello World
傳址:Show Me--Show Me--Show Me


Example2
";

//清除$val,其他的值並不會影響到
$val1 = "Test Delete";
$val2 = &$val1;
$val3 = &$val2;
unset($val1);
echo $val1."--".$val2."--".$val3;
?>



執行後:
Show Me--Hello World--Hello World--Show Me
--Test Delete--Test Delete



沒有留言:

張貼留言