我检查此PHP website benchmark以检查switch statement VS if else if statement。我看到这个结果:

开关和if结构之间有区别吗?致电1'000x


141%*if and elseif (using ==)*总时间:165 µs查看代码
139%*if, elseif and else (using ==)*总时间:162 µs查看代码
110%*if and elseif (using ===)*总时间:128 µs查看代码
100%*if, elseif and else (using ===)*总时间:117 µs查看代码
149%*switch / caseTotal*时间:174 µs查看代码
181%*switch / case / default*总时间:211 µs查看代码


结果我看到if else if更快(+ **100 %** *if, elseif and else (using ===)* Total time: 117 µsview code)。

这个基准是正确的,并且if, elseif and else (using ===)作为switch语句会更好更快。

最佳答案

是否获得完全相同的结果,将取决于您评估的条件,设备,设置和其他因素。但是是的,通常严格比较(if)的elseif / else / ===将胜过switch。原因是switch uses "loose" (i.e., type-insensitive) comparison (==),它比类型敏感的比较(===)慢。

请记住,这些差异非常小,并且会因算法中的任何低效率而相形见war。因此,只有在确定消除了其他主要瓶颈之后,才应调整此类细节。

关于php - PHP switch语句VS if elseif语句基准,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31500660/

10-10 02:01