【发布时间】: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