我正在尝试将这组简单的 else 语句转换为更易于阅读的开关;
$parts_arr = explode('.', $_SERVER['SERVER_NAME']);
if (in_array('dev', $parts_arr)) {
DEFINE('APP_ENV', "dev");
} else if (in_array('staging', $parts_arr)) {
DEFINE('APP_ENV', "staging");
} else if (in_array('local', $parts_arr)) {
DEFINE('APP_ENV', "local");
} else {
DEFINE('APP_ENV', "live");
}
然而我已经完全画了一个空白。我不能使用 foreach 循环并使用字符串作为 APP_ENV
无法重新定义的情况。
最佳答案
您只能检查整个服务器名称。
switch($_SERVER['SERVER_NAME']) {
case 'mysite.com':
case 'www.mysite.com':
DEFINE('APP_ENV', "live");
break;
case 'dev.mysite.com':
DEFINE('APP_ENV', "dev");
break;
case 'staging.mysite.com':
DEFINE('APP_ENV', "staging");
break;
case 'mylocalhost.local':
DEFINE('APP_ENV', "local");
break;
default:
exit;
}
关于php - 将 else 转换为具有 bool 返回值的 switch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892866/