php - 在 in_array() 和 || 之外使用什么更好运算符(operator)?

标签 php arrays performance

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

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

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

if($x == 'a' || $x == 'b' || $x == 'c' || $x == 'd'){
       action_a();
}else{
       action_b();
}

或者我们可以使用 in_array() 实现它,如下所示;

if(in_array($x,array('a','b','c','d'))){
       action_a();
}else{
       action_b();
}

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

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

  2. $x 的可能值数量很少时?

最佳答案

Write a benchmark script.

但总的来说,选择哪个变体几乎不应该取决于性能。尤其是在您的输入数据非常非常小(例如 <10)的超微不足道的情况下。

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

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

Premature optimization is the root of all evil .

关于php - 在 in_array() 和 || 之外使用什么更好运算符(operator)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14568165/

相关文章:

php - 如何在 PHP 中为多个 get 请求保持 mysql 连接打开?

php - phpmyadmin 中的外键在新闻源中给出错误

arrays - 如何在 Swift 中创建静态数组?

C:固定长度数组,转储最旧的、移动并添加最新的

ios - 只有一个 UIView subview 出现?

javascript - 关于代码执行和javascript阻塞/非阻塞性质的问题

sql - 为什么更改我的表模式会减慢我的查询速度?

php - 如何将对象(SimpleXMLElement)转换为字符串

php - 如果没有小数部分,则将 float 转换为 int

ruby-on-rails - 在 Rails 中,是否使用表单助手?