ホームページ > バックエンド開発 > PHPチュートリアル > PHP の $_ENV と $_SERVER の両方で SetEnv 変数にアクセスできるのはなぜですか?

PHP の $_ENV と $_SERVER の両方で SetEnv 変数にアクセスできるのはなぜですか?

Patricia Arquette
リリース: 2024-11-08 07:57:02
オリジナル
960 人が閲覧しました

Why are SetEnv variables accessible in both $_ENV and $_SERVER in PHP?

PHP の環境変数: SetEnv、$_ENV、$_SERVER について

Apache では、環境変数 FOO は SetEnv を使用して設定されます。 .htaccess ファイル内のディレクティブ。ただし、PHP はこの変数を $_ENV または $_SERVER に表示できます。なぜこのようなことが起こるのでしょうか?また、$_SERVER の複雑なエントリの原因は何ですか?

空の $_ENV 変数

デフォルトでは、variables_order ディレクティブを使用しない限り、PHP の $_ENV 変数は空のままです。 php.ini には E が含まれています。パフォーマンス上の理由から、これは運用環境では通常有効になりません。これを解決するには、variables_order を EGPCS に設定します。これにより、$_ENV にアクセスできるようになります。

$_SERVER の SetEnv

.htaccess で SetEnv を使用すると、 $_ENV ではなく $_SERVER の変数。この動作は直観的ではないため、誤解を招く可能性があります。

$_SERVER

SetEnv のエントリにより、[REDIRECT_FOO] や [FOO] などの $_SERVER のエントリが重複する可能性があります。 ]。これは、SetEnv が通常の環境変数 (FOO) とリダイレクト エイリアス (REDIRECT_FOO`) を作成するために発生します。

getenv 関数の代替

getenv 関数は常に取得に使用できます。 $_ENV の PHP 設定に関係なく、環境変数。 $_ENV で問題が発生した場合は、getenv を使用することをお勧めします。

追加メモ

  • getenv では、環境変数名の大文字と小文字が区別されません。
  • variables_order は、getenv の動作ではなく、$_SERVER と $_ENV の変数の順序に影響します。

以上がPHP の $_ENV と $_SERVER の両方で SetEnv 変数にアクセスできるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート