【问题标题】:PHP - Is there a better way find an integer out of a few?PHP - 有没有更好的方法从几个中找到一个整数?
【发布时间】:2012-11-17 03:06:06
【问题描述】:

目前我正在使用以下方法来确定$userlevel1020 还是30

if ( in_array( $userlevel, array( 10, 20, 30 ) ) ) { 

} 

有没有更好的方法来做到这一点?

【问题讨论】:

  • 我只是不知道这是否是在一组整数中查找整数的标准方法。我只是使用 in_array 是因为它有意义且速度很快。我已经尝试过使用 strpos() 但这并不适合我。
  • 我建议将阵列拉出,以防您决定在其他地方再次使用它。除此之外,这是避免 if 语句中出现缠绕条件的一种非常常见的方法。

标签: php integer


【解决方案1】:

您已经在使用“更好的方法”。替代方案是

if ($userlevel == 10 || $userlevel == 20 || $userlevel == 30) {

}

通常您会编写一个基本的if 语句,直到可能值的数量增加以至于行变得太长,然后您将它们移动到一个集合中并使用in_array

如果您知道$userlevel始终 是这些值之一,您可以简单地测试它是否在上限/下限之间,但这不会比您的方式短'现在正在写。

【讨论】:

    【解决方案2】:

    我认为没有“更好”的方法。这取决于您期望从中选择的价值观在未来发展。您可以使用不间断的开关。

    switch ($userlevel) {
        case 10: case 20: case 30
            // ..
            break;
        default:
            // ..
    }
    

    编辑

    当然有 从in_array 解决方案中受益匪浅。您可以将 decision 数组存储在变量中,并能够从其他地方影响它。

    【讨论】:

    • 聪明。虽然我通常更喜欢in_array,但我会为你的创造力投上一票;)
    【解决方案3】:

    没有比 in_array 更好的方法了。

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2018-02-15
      • 2015-07-27
      • 1970-01-01
      相关资源
      最近更新 更多