PHP開発では、実行時に構成情報を渡すか、プログラムの動作に影響を与えるために、現在のスクリプトの環境変数を一時的に設定する必要がある場合があります。 PHPは、この関数を実装するためにputenv()関数を提供します。この記事では、 Putenv()を使用する際に注意する必要がある使用法、適用可能なシナリオ、および問題を紹介します。
putenv()は、現在のプロセスに環境変数を設定するPHPの組み込み関数です。その範囲のアクションは、現在のスクリプトの実行期間に限定されており、システムのグローバル環境変数に影響しません。
bool putenv(string $setting)
パラメーター$設定の形式は「name = value」です。つまり、環境変数名と値は等しい符号に接続されています。
リターン値はブール値であり、成功に当てはまり、失敗にfalseです。
<?php
// 環境変数を設定します APP_MODE のために "development"
putenv("APP_MODE=development");
// 合格 getenv() 環境変数を設定するだけです
echo getenv("APP_MODE"); // 出力: development
?>
この例では、値「開発」を使用して、スクリプトのapp_modeという名前の環境変数を設定します。その後、 getEnv()関数を介して読み取ることができます。
スクリプトランタイム中の構成調整<br> たとえば、環境変数に従ってログレベル、デバッグモードなどを制御し、 cutenv()を使用して、構成ファイルを変更せずに動的に調整する必要があります。
外部コマンドまたはプロセスを呼び出す<br> PHPスクリプトが外部プログラムを呼び出す場合、環境変数を設定することにより、外部プログラムの動作に影響を与えることができます。
ハードコーディングされた機密情報を避けてください<br> 環境変数として特定の機密構成(APIキーなど)を一時的に設定して、コードまたは構成ファイルへの直接書き込みを避けることができます。
現在のスクリプトに対してのみ有効です
cutenv()によって設定された環境変数は、現在のスクリプト実行中にのみ有効であり、実行後に自動的に失敗し、システム環境は変更されません。
サーバーのパフォーマンスが異なる場合があります<br> 一部の環境(特にWindowsシステム)では、 Putenv()の動作はLinuxと正確に一致していない場合があり、テストと確認が必要です。
スレッドの安全性の問題<br> マルチスレッドまたは同時環境で使用する場合、環境変数はプロセスレベルであり、人種条件につながる可能性があることに注意してください。
重要なデータを渡すために環境変数に依存しないでください<br> 環境変数は外部プロセスによって簡単に読み取られるため、環境変数を通じて非常に機密性の高い機密情報を渡すことは推奨されません。