2012-01-03 58 views
0

基本上,我總是用文字「和」 &「或」所以,我的劇本是這樣的:if語句格式

if ($value == '1' or $value == '2' or $value == '3') { 
    //do stuff 
} 


if ($value == '1' and $user_logged == 'Admin') { 
    //do stuff 
} 
  1. 有可能擺脫的$value重複?
  2. 使用andor而不是||&&的好處?
+0

它是一樣的'做東西'? – JMax 2012-01-03 10:59:43

+2

你可以使用'if($ val> = 1 && $ val <= 3){}' – Dau 2012-01-03 11:00:39

回答

4

沒有辦法像快捷

if ($value == 1 or 2 or 3) // invalid 

表達式,但你可以用另一種方式檢查值:

if (in_array($value, array(1, 2, 3))) { 
    // do stuff 
} 

or之間的區別||是operator precedence。使用||和& &,而不是orand

1

你可先用,如果作爲一個開關語句:

switch($value) { 
    case "1": 
     echo "value is 1"; 
     break; 
    case "2": 
     echo "value is 2"; 
     break; 
    case "3": 
     echo "value is 3"; 
     break; 
} 

回答你的第二個問題:Operator precedence

+0

準確地說:**有**差異 – zerkms 2012-01-03 11:01:19

+0

它們有不同的優先級 – 2012-01-03 11:03:17

+0

好的,對不起。編輯我的答案。 – evilone 2012-01-03 11:04:17

3

答案1.

$inArray = (1,2,3); 
if (in_array($value,$inArray)) { 
    // do stuff 
} 

回答2.

Operator precedence