我很困惑。我在index.php中设置了以下代码,以便在xampp和服务器数据库配置文件之间自动切换:
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本地,我认为这会导致使用$ _SERVER ['SERVER_NAME'] = localhost将ENVIRONMENT常量设置为'development'。有人会介意解释我在这里做错了吗?
答案 0 :(得分:3)
define('ENVIRONMENT', isset($_SERVER['SERVER_NAME'])=='my_domain_name.com' ? 'production' : 'development');
在这里,您要比较isset()
与'my_domain_name.com'
的结果;你将布尔值与字符串进行比较。
您想要检查“ $_SERVER['SERVER_NAME']
设置并且$_SERVER['SERVER_NAME']
等于my_domain_name.com
?”,如下所示:
define('ENVIRONMENT', (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'my_domain_name.com') ? 'production' : 'development');
(或者......完全删除isset()
。)
答案 1 :(得分:1)
在这种情况下你不需要使用isset
(你知道它已经设置好了):
define('ENVIRONMENT',
($_SERVER['SERVER_NAME']) == 'my_domain_name.com' ? 'production' : 'development'
);
答案 2 :(得分:0)
试试这个:
define('ENVIRONMENT', ((isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME']=='my_domain_name.com')) ? 'production' : 'development'));