PHP 개발에서는 때때로 현재 스크립트가 런타임에 구성 정보를 전달하거나 프로그램 동작에 영향을 미치려면 일부 환경 변수를 일시적으로 설정해야합니다. PHP는이 기능을 구현하기 위해 putenv () 함수를 제공합니다. 이 기사에서는 Putenv ()를 사용할 때주의를 기울여야하는 사용법, 적용 가능한 시나리오 및 문제를 소개합니다.
putenv () 는 PHP의 내장 기능으로 환경 변수를 현재 프로세스로 설정합니다. 동작 범위는 현재 스크립트의 실행 기간으로 제한되며 시스템의 글로벌 환경 변수에는 영향을 미치지 않습니다.
bool putenv(string $setting)
매개 변수 $ 설정 의 형식은 "name = value" , 즉 환경 변수 이름 및 값이 동일한 부호와 연결됩니다.
반환 값은 부울 가치이며, 성공의 경우 사실 , 실패에 대한 거짓입니다 .
<?php
// 환경 변수를 설정합니다 APP_MODE ~을 위한 "development"
putenv("APP_MODE=development");
// 통과하다 getenv() 환경 변수를 방금 설정하십시오
echo getenv("APP_MODE"); // 산출: development
?>
이 예에서는 "Development" 값을 가진 스크립트에 대한 app_mode 라는 환경 변수를 설정했습니다. 그런 다음 getenv () 함수를 통해 읽을 수 있습니다.
스크립트 런타임 중 구성 조정 <br> 예를 들어, 환경 변수에 따라 로그 레벨, 디버그 모드 등을 제어하고 구성 파일을 변경하지 않고 동적으로 조정하기 위해 putenv ()를 사용해야합니다.
외부 명령 또는 프로세스 호출 <br> PHP 스크립트가 외부 프로그램을 호출하면 환경 변수를 설정하여 외부 프로그램의 동작에 영향을 줄 수 있습니다.
하드 코딩 된 민감한 정보를 피하십시오 <br> 코드 또는 구성 파일에 직접 쓰는 것을 피하기 위해 환경 변수로 특정 민감한 구성 (예 : API 키)을 일시적으로 설정할 수 있습니다.
현재 스크립트에만 유효합니다
putenv () 가 설정 한 환경 변수는 현재 스크립트 실행 중에 만 유효하며 실행 후 자동으로 실패되며 시스템 환경은 수정되지 않습니다.
다른 서버 성능이 약간 다를 수 있습니다 일부 환경 (특히 Windows Systems)에서 Putenv () 의 동작은 Linux와 정확히 일치하지 않을 수 있으며 테스트 및 확인이 필요합니다.
스레드 안전 문제 <br> 멀티 스레드 또는 동시 환경에서 사용될 때 환경 변수는 프로세스 수준이며 인종 조건으로 이어질 수 있습니다.
중요한 데이터를 전달하기 위해 환경 변수에 의존하지 마십시오 <br> 환경 변수는 외부 프로세스에 의해 쉽게 읽을 수 있으므로 환경 변수를 통해 매우 민감한 기밀 정보를 전달하는 것이 좋습니다.