首頁  >  文章  >  後端開發  >  為什麼我的 $_ENV 陣列是空的,為什麼環境變數會出現在 $_SERVER 中?

為什麼我的 $_ENV 陣列是空的,為什麼環境變數會出現在 $_SERVER 中?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-08 09:45:02841瀏覽

Why is my $_ENV array empty and why are environment variables appearing in $_SERVER?

為什麼會出現空的 $_ENV 變數和神秘的 $_SERVER ?

在這個令人困惑的 PHP 問題中,使用者會遇到空的 $_ENV 數組,儘管在 .htaccess 檔案中設定環境變數。此外,變數以看似重複的方式莫名其妙地出現在 $_SERVER 陣列中。

問題根源:

  1. $ _ENV 預設隱藏:

      $ _ENV 預設隱藏:
    的變數_order 指令,通常設定為“GPCS”,預設不包括“E”(ENV)。將此設定修改為“EGPCS”將啟用 $_ENV。
  2. SetEnv 變數登陸$_SERVER:
    設定環境在.htaccess 中使用Set>
設定環境在.htaccess 中使用Setv 的變數將它們放置在Env 的變數$_SERVER 數組中,而不是$_ENV 中。

  • 神祕的重複:

變數在$_SERVER 中出現兩次([REDIRECT_FOO] 和[FOO] ),因為如果原始變數名稱源自於環境,Apache 會在原始變數名稱前面加上REDIRECT_ 前綴。

  • 替代解決方案:

getenv() 函數不受php.ini 設定的影響,並且總是傳回正確的值,無論大小寫如何。

摘要:理解這些設定和行為差異有助於解開為什麼$_ENV 可以為空以及為什麼環境變數最終出現在$_SERVER 中的謎團。如果您需要填充$_ENV,請記住修改variables_order並使用getenv()來可靠地檢索環境變數。

以上是為什麼我的 $_ENV 陣列是空的,為什麼環境變數會出現在 $_SERVER 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn