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

PHP global 關鍵字詳解:在函數內訪問全局變量

     編輯:PHP 綜合知識

基本語法

<?php
$a = 1;
$b = 2;

function Sum() {
    global $a, $b; // 聲明使用全局變量
    $b = $a + $b;
}

Sum();
echo $b; // 輸出 3
?>

核心機制

  • global $var 在函數內創建一個指向全局符號表中 $var 的引用(別名)。
  • 對 $var 的修改直接影響全局變量。
  • 可一次聲明多個:global $a, $b, $c;

對比:global vs $GLOBALS

方式語法特點
globalglobal $a;創建引用,語法簡潔,僅限函數內
$GLOBALS$GLOBALS['a']超全局陣列,任何作用域可用,無需聲明
<?php
$a = 10;
function test() {
    $GLOBALS['a'] = 20; // 直接修改全局
}
test();
echo $a; // 20
?>

常見誤區

  • 函數參數同名:function foo($a) { global $a; } 會導致致命錯誤(參數與 global 同名衝突)。
  • 靜態變量:static $a 與 global $a 完全不同,static 保持函數內部狀態,不關聯全局。
  • 類成員:類屬性用 $this->prop,非 global。

最佳實踐

  • **盡量減少全局變量使用**,增加耦合、難測試、難維護。
  • 優先通過**參數傳遞**、**依賴注入**、**單例/服務容器**共享狀態。
  • 必須用全局時,集中在配置類/常量類中,命名規範(如 $GLOBALS['APP_CONFIG'])。
  • 避免在 include 文件中隱式依賴全局變量,導致上下文敏感。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved