doumen5087 2012-08-23 13:05
浏览 43
已采纳

数组未设置时php切换的行为

So, I'm trying to have a better understanding of how switch would act when an array is not set and if I should use isset() and/or default:

Example, of the code I'm currently using:

$parameters['sort'] = NULL;

if(isset($parameters['sort'])) {

    switch($parameters['sort'])
    {
        case 'relevance':
            $parameters['sort'] = 'rating';
        break;
        case 'published':
            $parameters['sort'] = 'updated';
        break;
        case 'views':
            $parameters['sort'] = 'viewCount';
        break;
    }

}

Note: I know the break; doesn't have the right indent (should be as below), but it's how I like using it in switch().

Note2: I'm just reviewing my code to fix bugs and improve it while making better sense of how things should be properly implemented/used

    case 'relevance':
        $parameters['sort'] = 'rating';
        break;

So my question is, should I add the extra default and remove the if() or continue using the if() as it didn't caused any problem? Using both wouldn't make any sense!

    default:
        $parameters['sort'] = '';
    break;
  • 写回答

3条回答 默认 最新

  • drq61040 2012-08-23 13:12
    关注

    default option will be chosen after checking all prior comparisons. If default will be the most common choice and the code will be heavily executed, I think you should stick to the if clause, and you won't have to trust any auto optimizations to save you processor time.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?