【问题标题】:When does IF become better than SWITCH [duplicate]IF什么时候变得比SWITCH好[重复]
【发布时间】:2015-04-17 15:38:18
【问题描述】:

我正在开发一个 API,它允许开发人员发布一组参数,最多可以有 100 个不同的参数。我不确定他们通常会使用多少(或哪些),但以前的经验让我相信只会使用几个。

现在我面临一个 SPEED 问题(因为我预计每秒有很多 API 调用):如果我使用 switch 语句与 if/elseif 语句会有所不同吗?

出于可读性的目的,我显然更喜欢这样做:

foreach ($_REQUEST as $key=>$value) {
switch ($key) {
    case 'par1':
        // do something
        break;
    case 'par2':
        // do something else
        break;
    case 'par3':
        // etc etc

如果我能坚持这一点,我的代码将更具可读性,并且可以更轻松地添加/删除参数而不会出现明显的错误。

PS - 除了this one about C++,我已经在 SO 上找不到这样的帖子了

编辑:我现在在 SO (IF vs SWITCH) 上找到了另一个帖子,它比较了在这种情况下的几个语句。基准测试说差别不大(尽管仍然是 30%),但我仍然想知道在 100 个参数的情况下会发生什么。

【问题讨论】:

  • 哎呀——刚刚发现这篇文章可能说明了一切:stackoverflow.com/questions/3178801/…
  • @DamienPirsy 我还没有弄清楚如何测试这个。特别是因为这将是大约 100 个参数。而且很可能其中一些会(最终)成为最常用的。
  • 附加信息:我几年前发现的一个不错的网站是这个:phpbench.com 它向您展示了一些关于 PHP 功能的基准。在我的课程中,他们告诉我,当您进行三个或更多比较时,应该使用 SWITCH。无论如何,它仍然取决于您要比较的内容。 SWITCH 的选项有限。亲切的问候

标签: php performance


【解决方案1】:

性能差异很小,我不会担心,只是去切换。

查看评论中还提到的帖子的基准:What is the difference between Switch and IF?

【讨论】:

    猜你喜欢
    • 2015-04-05
    • 2022-10-06
    • 2011-10-06
    • 2010-10-11
    • 2010-12-08
    • 2012-05-26
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多