呼叫方式
|
說明
|
傳值呼叫(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
傳址: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
--Test Delete--Test Delete
沒有留言:
張貼留言