php - PHP 环境变量简写

标签 php azure if-statement environment shorthand

我希望从本地主机过渡到开发环境,再到东/西登台环境,再到生产环境,而无需更改 PHP 文件,但我认为我的代码不正确,这可能是我的简写,我是新手对此。

我希望做的是,if localhost then else if dev, else if staging east, else if staging west, else if production。也许有更好的方法来做到这一点?

如果有帮助的话,我在开发/登台/生产中使用 Apache 作为本地主机和 Azure,我会使用两者,但我无权访问 Azure。

<?php
$thisPage = "navigation";
define('URL_ROOT',
            getenv('DEV_SERVER') ?
                'http://localhost/Site/' :
                'dev.website.net' :
                'http://website-east.website.net/' :
                'http://website-west.website.net/' :
                'http://production-website.com/'
);
?>

最佳答案

根据我们上面的评论,您可以:

switch(strtolower(getenv('DEV_SERVER')))
{
    case 'localhost':
        define('URL_ROOT', 'http://localhost/Site/');
        break;
    case 'dev':
        define('URL_ROOT', 'dev.website.net');
        break;
    case 'east':
        define('URL_ROOT', 'http://website-east.website.net/');
        break;
    case 'west':
        define('URL_ROOT', 'http://website-west.website.net/');
        break;
    case 'prod':
        define('URL_ROOT', 'http://production-website.com/');
        break;
    default:
        die('Environment not defined!!');
}

如果可以的话,我建议设置一个通用环境变量名称,例如 getenv('SERVER_ENVIRONMENT') 并在 switch() 中使用它,因为 DEV_SERVER 意味着它只是 T/F,除 dev 之外的每个服务器都将设置为 F。

关于php - PHP 环境变量简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354426/

相关文章:

php - 帮助构建 MySQL SELECT 语句

php - 我如何检查一个元素在 php 中是否可见?

具有共享高级磁盘的 Azure 虚拟机 - 无法查看数据

java - 被 Java 中的多个缩进 if 语句搞糊涂了

javascript - 为什么 OnClick 不改回颜色?

将多个 if 更改为循环?

php - Laravel:Order By hasMany 关系的第一个(最旧的)条目

php - 人与人之间的相互关系

asp.net-mvc - Azure AD B2C ASP.NET 重定向循环

azure - 针对 Windows Azure Active Directory 的 ASP.NET 身份验证出现 ACS50001 错误