php - 将 else 转换为具有 bool 返回值的 switch

标签 php switch-statement

我正在尝试将这组简单的 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/

相关文章:

php - 修复sql查询(更新mysql之前工作)

powershell - switch 语句中多个值的 PowerShell 语法是什么?

javascript - 无法使用 javascript 或 jquery 获取开关状态

java - 如何在java中替换/转换/扩展字符串

java - Java 中的 switch 语句

java - 将变量重新初始化为常量

php - 如何防止PHP中的SQL注入(inject)?

php - NelmioApiDocBundle 不生成文档

php - 在 PHP 中使用断言进行类型检查?

javascript - 使用 php laravel 框架在 javascript 中生成动态 id