PHP:简化多个||

PHP: Simplify multiple || operator statements into one?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
php if statement with multiple conditions

我有这个代码:

if(x==1 || x==2 || x==3 || x==4 )

有没有简单地说短一点?例如:

if(x==1||2||3||4 )

如果x=1、2、3或4,说明为真?

提前谢谢。

编辑:(感谢所有回复,这里有一些澄清)

我有一个while循环,但只希望调用特定的数据库条目。我的代码是最新的

1
2
3
4
5
6
7
8
9
10
11
12
<?php while(the_repeater_field('team_members','options') && get_sub_field('member_sort') == 1 : ?>
 
        <img src="<?php the_sub_field('image'); ?>" alt="" />
        <p>

          <?php the_sub_field('info'); ?>
            <br />
           "><?php the_sub_field('email'); ?>
       
</p>
 
<?php endwhile; ?>

现在它完全适用于==1,但我也希望显示2,3,4。我只是不知道该如何让代码执行1 2 3 4

更新2:

好吧,所以我用了下面的代码,但我猜我用的是错误的方式。以下代码只显示等于1的记录。但记录不等于2,3,4…我猜是因为while循环只运行一次,因为语句立即变为真。

1
2
3
4
5
6
7
8
9
10
11
12
  <?php while(the_repeater_field('team_members','options') && in_array(get_sub_field('member_sort'),array(1,2,3,4))): ?>
                       
                            <img src="<?php the_sub_field('image'); ?>" alt="" />
                            <p>

                                <?php the_sub_field('info'); ?>
                                <br />
                               "><?php the_sub_field('email'); ?>
                           
</p>
                       
                    <?php endwhile; ?>


1
if (in_array($x, array(1,2,3,4))

或者,即使:

1
if (in_array($x, range(1, 4)))

这个问题很好,但有一点我认为进化的问题是现在的,你想要的所有的环在自由价值的东西但只有在一定的条件下。你可以使用在当前的大continue项声明abort iteration和移动在大一之后立即。

1
2
3
4
5
6
<?php while (the_repeater_field('team_members','options')) : ?>
    <?php if (!in_array(get_sub_field('member_sort'), array(1,2,3,4))) continue; ?>

    ... do stuff

 <?php endwhile; ?>


如果你是使用PHP 5.4 +,你可以做这个:

1
if (in_array($x, [1,2,3,4]))

否则,它是:

1
if (in_array($x, array(1,2,3,4)))


这取决于你有多少,以及是否有可能在其他条件,但无论是一个switch

1
2
3
4
5
6
7
8
9
switch(x) {
    case 1:
    case 2:
    case 3:
    case 4:
        break;
    default:
        // Do stuff
}

阵列或安全,尤其是对于许多items:

1
2
3
if(!in_array(x, array(1, 2, 3, 4)) {
    // Do stuff
}


有没有方法。由arrays只使用。