PHP 中的 static 關鍵字根據使用位置不同,對變量與函數產生截然不同的影響。本文從全域變量、區域變量、函數三個維度深度解析。
static $var 在函數外部):僅限定義該變量的源文件內部可見,其他文件無法直接引用。static 後改為靜態儲存,生命週期延長至程式結束。static function 僅在當前源文件可見,屬於內部函數。static;需跨文件調用的函數應放入頭文件並正常聲明。| 對象 | 關鍵字影響 | 核心差異 |
|---|---|---|
| 全域變量 | 限制作用域 | 僅限本文件可見,避免跨文件汙染 |
| 區域變量 | 改變儲存期/生命週期 | 跨調用保持值,僅初始化一次 |
| 函數 | 限制連結可見性 | 內部函數,隱藏實現細節 |
總結:善用
static可提升封裝性、減少命名衝突、優化區域狀態管理。但需注意 PHP 5.3+ 類靜態成員(static $prop、static function)與此處討論的過程式static為不同語境。