dpub33855 2014-11-17 10:54
浏览 20
已采纳

用于检测服务器环境的多个switch语句的语法[重复]

This question already has an answer here:

I need to detect different server environments in my site's config file. Up until now I was fine with detecting them using only the server's address.

switch ( $_SERVER['SERVER_ADDR']){
    case '127.0.0.1':
    // stuff
    break;
    case '111.222.333.444';
    // stuff
    break;
}

But I now need to test my environment against both the SERVER_ADDR and SERVER_NAME. I'm no php'er, so I've had a stab at

switch ( $_SERVER['SERVER_ADDR'] && $_SERVER['SERVER_NAME'] ){
    case ('127.0.0.1','local'):
    // stuff
    break;
    case ('111.222.333.444','gimmesomefunk.com');
    // stuff
    break;
}

But it's obviously wrong. Any clues?

</div>
  • 写回答

3条回答 默认 最新

  • douyan1927 2014-11-17 10:58
    关注

    If you want to keep using switch, you'll have to combine both to one variable like this:

    switch (array($_SERVER['SERVER_ADDR'], $_SERVER['SERVER_NAME'])){
        case array('127.0.0.1', 'local'):
        // stuff
        break;
        case array('111.222.333.444', 'gimmesomefunk.com'):
        // stuff
        break;
    }
    

    However, the more normal way would be to use if, elseif:

    if ( $_SERVER['SERVER_ADDR'] == '127.0.0.1' && $_SERVER['SERVER_NAME'] == 'local' ) {
        // stuff
    } elseif ( $_SERVER['SERVER_ADDR'] == '111.222.333.444' && $_SERVER['SERVER_NAME'] == 'gimmesomefunk.com' ) {
        // stuff
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部