2013-07-05 20 views

答えて

17

getenv()環境変数が設定されていない場合はfalseを返します。次のコードは動作します:

// Assuming MYVAR isn't defined yet. 
getenv("MYVAR") !== false; // returns false 
putenv("MYVAR=foobar"); 
getenv("MYVAR") !== false; // returns true 

getenv()は通常ブールとしてキャストすることができ、文字列を返すため、厳密な比較演算子(!==)を使用してください。

-4

環境変数の値を返します:私はこのような振る舞いをしたいと思います。

+6

この場合、 'isset($ var)'は常にtrueです。 – wecsam

+0

getvar()は設定されていないとfalseを返すので、$ varは設定されているがfalseに設定されているため、issetは常にtrueを返します。 – nickdnk

3

を必要とするものである

// Assuming MYVAR isn't defined yet. 
isset(MYVAR); // returns false 
putenv("MYVAR=foobar"); 
isset(MYVAR); // returns true 
+1

'REMOTE_ADDR'は常に設定されていませんか?私の場合は、サーバーに環境変数が設定されているかどうかに応じて、異なる動作が必要なスクリプトを作成しています。 – wecsam

+0

@wecsam REMOTE_ADDRは、別の環境変数を渡すことができる例です。 –

+2

環境変数が設定されていない場合、 'getenv()'は 'false'を返します。私はそれがあなたのコードが説明しようとしているものだと思っています。ただし、コードにはいくつかの問題があります。まず、 '='をほとんど意味していたので、 '='代入演算子を 'if'条件文で使うのを避けようとします。もう一つは、環境変数の値が空の文字列で 'false'にキャストされるため、厳密な比較演算子を使用する必要があります。 – wecsam

関連する問題