兩者都能在函數內部修改外部變量,但 作用機制、作用域、性能影響 截然不同。
$GLOBALS 數組或 global $var。&$var,調用時傳遞變量的內存地址,函數直接操作原變量內存。<?php
$globalVar = 10;
$refVar = 20;
function useGlobal() {
global $globalVar;
$globalVar += 5; // 修改全局變量
}
function useRef(&$val) {
$val += 5; // 修改實參
}
useGlobal();
useRef($refVar);
echo $globalVar; // 15
echo $refVar; // 25
?>
global 或 $GLOBALS,但需加註釋說明原因。global,防止性能下降與邏輯混亂。理解二者本質區別,能寫出更健壯、可維護的 PHP 代碼。