什么是更好的使用in_array()和|| 运营商?

mit*_*atw 1 php arrays performance

考虑到脚本的性能,我问这个问题.知道PHP数组的表现不是很好,我在这种情况下徘徊哪种方式是最好的.

假设如果$x等于a或b或c或d我们需要action_a()执行,如果不action_b()执行..

我们可以用||运算符实现这个,如下所示;

if($x == 'a' || $x == 'b' || $x == 'c' || $x == 'd'){
       action_a();
}else{
       action_b();
}
Run Code Online (Sandbox Code Playgroud)

或者我们可以使用in_array()如下实现:

if(in_array($x,array('a','b','c','d'))){
       action_a();
}else{
       action_b();
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是这两个选项中哪一个表现良好:

  1. 当可能值的$x数量很高时?

  2. 当可能值的$x数量低时?

Hal*_*yon 6

写一个基准脚本.

但总的来说,选择哪种变体应该几乎不依赖于性能.特别是在输入数据非常小(例如<10)的超级平凡情况下.

这个最重要的标准始终是可读性.

只有在存在不可否认的性能问题时才开始优化代码.

过早优化是万恶之源.