1

可能重复:
具有多个条件的 php if 语句

我有这个代码:

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

反正有没有更短的?例如:

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

如果 X= 1,2,3 OR 4,这句话的意义是什么?

先感谢您。

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

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

<?php while(the_repeater_field('team_members','options') && get_sub_field('member_sort') == 1 : ?>
 <div class="one_fourth">
        <img src="<?php the_sub_field('image'); ?>" alt="" />
        <p>
          <?php the_sub_field('info'); ?>
            <br />
            <a href="mailto:<?php the_sub_field('email'); ?>"><?php the_sub_field('email'); ?></a>
        </p>
 </div>
<?php endwhile; ?>

现在它与 == 1 完美配合,但我也想显示 2,3,4 。我只是不确定我应该如何放置代码来执行 1||2||3||4

更新 2:

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

  <?php while(the_repeater_field('team_members','options') && in_array(get_sub_field('member_sort'),array(1,2,3,4))): ?>
                        <div class="one_fourth">
                            <img src="<?php the_sub_field('image'); ?>" alt="" />
                            <p>
                                <?php the_sub_field('info'); ?>
                                <br />
                                <a href="mailto:<?php the_sub_field('email'); ?>"><?php the_sub_field('email'); ?></a>
                            </p>
                        </div>
                    <?php endwhile; ?>
4

4 回答 4

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

甚至:

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

好的,这个问题已经发展了很多,但我认为现在的问题是你想遍历所有值,但只在某些条件下做事情。您可以使用该continue语句中止当前迭代并立即进入下一个迭代。

<?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; ?>
于 2012-05-29T01:04:15.847 回答
1

这取决于你有多少,以及是否可能有其他条件,但要么switch

switch(x) {
    case 1:
    case 2:
    case 3:
    case 4:
        break;
    default:
        // Do stuff
}

或者一个数组,特别是对于许多项目:

if(!in_array(x, array(1, 2, 3, 4)) {
    // Do stuff
}
于 2012-05-29T01:04:57.690 回答
1

如果您使用的是 PHP 5.4+,您可以这样做:

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

否则,它是:

if (in_array($x, array(1,2,3,4)))
于 2012-05-29T01:05:07.587 回答
0

没有办法。只能通过使用数组。

于 2012-05-29T05:07:36.790 回答