5

is there a way to abbreviate the following?

if ($chk == 1 || $chk == 3 || $chk == 5 || $chk == 7){
do some stuff
}

Thanks.

4

5 回答 5

10
if (in_array($chk, array(1, 3, 5, 7))) ... 

或者,如果您计划包含 if-elseif-cascades,请使用 switch 语句:

switch($chk)
{
  case 1: case 3: case 5: case 7: 
    do_something();
    break; 
  case 10: case 30: case 50: case 70: 
    do_something_else();
    break; 
  default: 
    do_default();
}
于 2013-09-07T16:27:26.440 回答
1

如果你看起来很奇怪!

if (!(($chk % 2)==0)  // can use if($chk&1) instead
{
 //odd acess
}
 else
{
 //even stuff
}

或者

if($num&1) 
{
    //odd stuff
} 
else 
{
    //even stuff
}

或某些事物逻辑

if($num&1) 
{
    //odd stuff

      if($num>=1 && $num<=7)
                  {//your special stuff 
                  }
} 
else 
{
    //even stuff
}
于 2013-09-07T16:36:33.690 回答
1

如果您只使用奇数,您可以检查该值。如果值不均匀,则执行该函数

$unevenNumbers=array(1,2,3,4,5,7);

foreach($unevenNumbers as $nbr){
    if( $nbr % 2 !== 0){
        //do some stuff
    }
}
于 2013-09-07T16:35:09.050 回答
0
<?php
$arr = array(1, 3, 5, 7);
if (in_array($chk, $arr)) {
    // DO SOMETHING
}
于 2013-09-07T17:04:50.357 回答
0

您可以使用三元运算符。

in_array($chk, array(1, 3, 5, 7)) ? /* Do some stuff*/;
于 2013-09-07T16:33:04.600 回答