여기에 두 가지 문제가 있음이 밝혀졌습니다.
1. $_ENV
php.ini가 허용하는 경우에만 채워집니다. 기본적으로는 그렇지 않은 것 같습니다. 적어도 기본 WAMP 서버 설치 에서는 그렇지 않습니다 .
; This directive determines which super global arrays are registered when PHP
; starts up. If the register_globals directive is enabled, it also determines
; what order variables are populated into the global space. G,P,C,E & S are
; abbreviations for the following respective super globals: GET, POST, COOKIE,
; ENV and SERVER. There is a performance penalty paid for the registration of
; these arrays and because ENV is not as commonly used as the others, ENV is
; is not recommended on productions servers. You can still get access to
; the environment variables through getenv() should you need to.
; Default Value: "EGPCS"
; Development Value: "GPCS"
; Production Value: "GPCS";
; http:
variables_order = "GPCS"
내가 설정 한 경우 variables_order
에 다시 EGPCS
, $_ENV
더 이상 빈 없습니다.
당신이 사용하는 경우 2. SetEnv
당신에 .htaccess
, 그것에서 끝나는 $_SERVER
되지에서$_ENV
, 내가 말할 돼있는이 이름을 때 혼란 태드입니다 SetEnv
...
SetEnv ENV dev
SetEnv BASE /ssl/
var_dump($_SERVER['ENV'], $_SERVER['BASE']);
3.이 getenv
함수는 항상 작동하며 $ _ENV에 대한 PHP 설정의 영향을받지 않습니다. 또한 대소 문자를 구분하지 않는 것처럼 보이므로 유용 할 수 있습니다.
var_dump(getenv('os'), getenv('env'));
$_SERVER
var 로 전송됩니다 . 나는getenv()
내가 수집하는 한 대소 문자를 구분하지 않고 모두 검색하는 사용에 대한 투표를 할 것 입니다.