2011-06-20 18 views
0

對不起,PHP的條件句只是一個很基本的問題基本if..elseif ...在PHP中其他問題

If {} 
elseif {} 
else {} 

如果if條件出來是真實的,將PHP還是評估elseif到看看這是否屬實?

+12

試試看吧?我的錢是「不是」 –

回答

15

號碼(基本答案一個基本的問題)

您可以在PHP手冊elseif/else if中深入閱讀,第一個示例與您的相似。

+4

這樣一個簡單的答案不能得到+13大聲笑xd – dynamic

+0

我認爲人們就像他的答案完整一樣就是@hakre。 :) – moey

2

不,它不會。執行完if代碼後,它將在else之後繼續執行。

11

不,它不會。它將執行if代碼,然後在else之後繼續。

爲了看到它,你可以檢查此:

if (true) 
{ 
    echo "foo inside if" 
} 
else if (true) 
{ 
    echo "foo inside else if" 
} 
else 
{ 
    echo "foo inside else"; 
} 

echo "\nfoo after else" 

上面的代碼將打印:

foo inside if 
    foo after else 

,而不是

foo inside if 
    foo inside else if 
    foo after else 
3

如果第一個if爲真,代碼將輸入if,然後執行那裏的代碼。然後它將退出else並繼續。

5

不!一旦if/else塊中的任何地方滿足條件,PHP退出該塊並繼續前進。例如,在此代碼:

if ($a <= 3) { 
    echo "small"; 
} 
elseif ($a <= 6) { 
    echo "medium"; 
} 
else { 
    echo "large"; 
} 

...如果$a爲2,它會響應 「小」,因爲$a是< = 3,但 「中等」,即使$a也< = 6.

如果你沒有希望PHP檢查後續條件,你會使用多個if語句來代替。例如:

if ($b < 4) { 
    echo "less than 4"; 
} 
if ($b < 8) { 
    echo "less than 8"; 
} 

...將回聲都「小於4」和「小於8」如果$b,比如說,是3

4

正如其他人已經提到的,沒有,也不會甚至測試elseif的條件。這對於以下情況也很重要:

$a = 1; 

if ($a > 0) { } 

else if (++$a > 0) { } // note the increment operator 

else { } 

echo $a; // produces 1 

任何修改值作爲條件測試副產品的表達式都不會觸發。

2

並非如此。只要您在if查詢中滿足您指定的條件,php就會停止向前推進,並會繼續執行if查詢結束後出現的代碼。

1

沒有,也不會執行其他if語句作爲如果條件爲真 這是普遍的真理在所有語言

$a=1; 
if($a==1){ 
echo "inside if"; 
}else if($a==2){ 
echo "inside else if"; 
}else{ 
echo "inside else"; 
} 

的if-else-if-else語句塊將會有如下輸出: 裏面,如果 由於a的值是1,它不會執行其他如果和其他塊

希望它有助於!