2013-09-07 17 views
5

c'è un modo per abbreviare quanto segue?Abbreviazione php if/or statement

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

Grazie.

+0

controllo ou la modifica dal titolo "o qualche cosa logica" –

risposta

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

Oppure, se si prevede di includere if-elseif-cascate, utilizzare un'istruzione 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(); 
} 
0

È possibile utilizzare gli operatori ternari.

in_array($chk, array(1, 3, 5, 7)) ? /* Do some stuff*/; 
1

Se si utilizza solo i numeri dispari, si potrebbe verificare il valore. Se il valore non è uniforme, la funzione verrà eseguita

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

foreach($unevenNumbers as $nbr){ 
    if($nbr % 2 !== 0){ 
     //do some stuff 
    } 
} 
1

se siete alla ricerca di strano!

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

o

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

o qualche logica cosa

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

     if($num>=1 && $num<=7) 
        {//your special stuff 
        } 
} 
else 
{ 
    //even stuff 
} 
0
<?php 
$arr = array(1, 3, 5, 7); 
if (in_array($chk, $arr)) { 
    // DO SOMETHING 
}