有没有更简单的方法来检查变量是否等于各种数字?
问题描述:
if ($j == 1 || $j == 2 || $j == 3)
有没有写这个的一个简单的方法。喜欢的东西...
伪
if ($j == 1-3)
答
下面是使用in_array()
if (in_array($j, array(1,2,3)))
{
//do something
}
或如何使用range()使阵列
if (in_array($j, range(1,3)))
{
//do something
}
然而,建设一个办法一个数组只是为了检查一个nar这样的连续范围相当低效。因此,如何简单:
if ($j >= 1 && $j <= 3)
{
//do something
}
如果$ j的其他值会触发不同的动作,开关可能如果它是一个范围更合适......
switch($j)
{
case 1:
case 2:
case 3:
//do something
break;
}
答
,你可以简单地做:
if ($j >= 1 && $j <= 5) ...
+0
+1当然对于大的这比我的例子更好 – 2009-10-28 10:13:49
答
保罗的好,但如果你有大量的,那么你可能需要使用range
:
if (in_array($j, range(0, 100)))
{
}
+2
如果不用100个元素创建一个数组并且浪费内存,你可以用if($ j> = 0 && $ j 2009-10-28 10:02:52
聪明的一句话:'1-3'是-2。 – hobbs 2009-10-28 10:32:28