0

私は混乱しています。xampp とサーバー データベースの構成ファイルを自動切り替えするために、index.php に次のコードを設定しました。

define('ENVIRONMENT', isset($_SERVER['SERVER_NAME'])=='my_domain_name.com' ? 'production' : 'development');

    echo 'SERVER_NAME  '.$_SERVER['SERVER_NAME']; // getting localhost
    echo 'env '.ENVIRONMENT; // getting production.

ローカルの Xampp では、これにより ENVIRONMENT 定数が $_SERVER['SERVER_NAME']=localhost で 'development' に設定されると思いました。ここで私が間違っていることを誰かが説明してくれませんか?

4

3 に答える 3

3
define('ENVIRONMENT', isset($_SERVER['SERVER_NAME'])=='my_domain_name.com' ? 'production' : 'development');

isset()ここでは、 の結果をと比較しています'my_domain_name.com'。ブール値と文字列を比較しています。

次のように、「 is $_SERVER['SERVER_NAME']set AND is $_SERVER['SERVER_NAME']equal to my_domain_name.com? 」を確認する必要があります。

define('ENVIRONMENT', (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'my_domain_name.com') ? 'production' : 'development');

isset()(または... を完全に削除します。)

于 2012-11-30T03:39:50.793 に答える
1

この場合、使用する必要はありませんisset(すでに設定されていることがわかっています)。

define('ENVIRONMENT', 
    ($_SERVER['SERVER_NAME']) == 'my_domain_name.com' ? 'production' : 'development'
);
于 2012-11-30T03:40:11.677 に答える
0

これを試して:

define('ENVIRONMENT', ((isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME']=='my_domain_name.com')) ? 'production' : 'development'));
于 2012-11-30T03:41:57.287 に答える