首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 傳值賦值與傳址賦值差異示範

     編輯:PHP 相關知識

PHP 傳值賦值與傳址賦值差異示範

PHP 預設為傳值賦值(複製值),使用 & 符號可建立傳址參考(指向同一記憶體位址)。範例展示修改原變數、參考變數時的行為差異。

程式碼

<?php
$name = 'Simon';
$name_b = $name;      // 傳值賦值:複製一份
$addr   = &$name;     // 傳址賦值:參考同一變數

$name = 'Elaine';     // 修改原變數
echo $name;   // Elaine
echo $name_b; // Simon(未變)
echo $addr;   // Elaine(同步變更)

$addr = 'Helen';      // 修改參考變數
echo $name;   // Helen(同步變更)
echo $addr;   // Helen
?>

關鍵概念

賦值方式語法行為
傳值$b = $a;複製值,兩變數獨立
傳址$b = &$a;指向同一 Zval,修改任一皆同步

常見應用

  • 函式參數傳址:function foo(&$var) 允許函式修改外部變數。
  • 陣列遍歷修改元素:foreach ($arr as &$v) $v *= 2;。
  • 大型資料結構避免複製:傳址參考可節省記憶體,但需注意副作用。

注意事項

  • PHP 5.4+ 已移除 call-time pass-by-reference(呼叫時加 &),只能在函式定義處宣告。
  • 物件預設即為傳遞物件識別碼(類似傳址),$obj2 = $obj1 兩者指向同一實體;需複製物件請用 clone。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved