我有这段代码:
if(x==1 || x==2 || x==3 || x==4 )
反正只是缩短了吗?例如:
if(x==1||2||3||4 )
如果X = 1,2,3或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; ?>
答案 0 :(得分: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; ?>
答案 1 :(得分: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
}
答案 2 :(得分:1)
如果您使用的是PHP 5.4+,则可以这样做:
if (in_array($x, [1,2,3,4]))
否则,它是:
if (in_array($x, array(1,2,3,4)))
答案 3 :(得分:0)
没有办法。只能使用数组。