>  기사  >  백엔드 개발  >  내 $_ENV 배열이 비어 있는 이유는 무엇이며 $_SERVER에 환경 변수가 나타나는 이유는 무엇입니까?

내 $_ENV 배열이 비어 있는 이유는 무엇이며 $_SERVER에 환경 변수가 나타나는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-08 09:45:02840검색

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

빈 $_ENV 변수와 신비한 $_SERVER 모양이 나타나는 이유는 무엇입니까?

이 당황스러운 PHP 문제에서 사용자는 빈 $_ENV 배열을 접하게 됩니다. .htaccess 파일에 환경 변수를 설정합니다. 또한 변수는 $_SERVER 배열에 겉보기에 중복된 것처럼 보입니다.

문제의 근본:

  1. $ _ENV는 기본적으로 숨겨져 있습니다.

    • php.ini의 Variable_order 지시문은 일반적으로 "GPCS"로 설정되며 기본적으로 "E"(ENV)를 제외합니다. 이 설정을 "EGPCS"로 수정하면 $_ENV가 활성화됩니다.
  2. SetEnv 변수는 $_SERVER에 위치합니다.

    • 설정 환경 .htaccess에서 SetEnv를 사용하는 변수는 $_ENV가 아닌 $_SERVER 배열에 배치됩니다.

신비한 중복:

  • 변수가 $_SERVER([REDIRECT_FOO] 및 [FOO])에 두 번 나타납니다. 왜냐하면 Apache가 환경에서 유래한 경우 원래 변수 이름에 REDIRECT_ 접두사를 붙이기 때문입니다.

대체 해결 방법:

  • getenv() 함수는 php.ini 설정의 영향을 받지 않고 대소문자 구분에 관계없이 항상 올바른 값을 반환합니다.

요약 :

이러한 설정과 동작 차이를 이해하면 $_ENV가 비어 있을 수 있는 이유와 환경 변수가 $_SERVER로 끝나는 이유에 대한 미스터리를 푸는 데 도움이 됩니다. $_ENV를 채워야 하는 경우 Variable_order를 수정하고 환경 변수를 안정적으로 검색하려면 getenv()를 사용하십시오.

위 내용은 내 $_ENV 배열이 비어 있는 이유는 무엇이며 $_SERVER에 환경 변수가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.