PHP中的$_ENV是伺服器中環境變數的數組,他是PHP中的超級全域變數,最近學習Laravel時有一.env的環境設定檔,其原理是其設定好的環境設定值,加載到PHP的$_ENV全域變數中。
基於好奇,在未啟動Laravel環境的狀態下,試著在PHP程式中把$_ENV倒出來,可使用的語法有三中
1. var_dump($_ENV);
2. print_r($_ENV);
3.
foreach ($ENV as $key =>$value){
echo $key . "==>" . $value . "<br>"
}
結果發現倒出來的$_ENV全是空值
原來在php.ini中,有一 variables_order設定值,如果是設為GPCS,就不會顯示$_ENV環境變數。G指的是Get、P指的是Post、C指的是Cookie、S指的是Session,而ENV的代表英文為E,所以如果希望$_ENV能撈出伺服器上的環境變數,variables_order就應該設定為EGPCS
variables_order = EGPCS
但是,看了一下,發現如果伺服器上的環境變數被撈光了,好像不太安全,所以其實php.ini的說明中也說了,發行版伺服器的php.ini設定建議還是採用GPCS。
ps.設定完後,要記得重起Apache2
沒有留言:
張貼留言