2011-06-18 7 views
1

非常に単純な質問... if文が機能しないという問題がありますか?私が望むのは、$ quantityが20、または40、または80、または160と表示されない場合のステートメントです。そうでない場合や文

if($quantity != '20' || $quantity !='40' || $quantity != '80' || $quantity != '160') 
{  
echo "here"; 
} 

いずれかの提案があります。 :)

答えて

6

はこれを試してみてください、それは(IMO)クリーナーです:

エルス
if (!in_array($quantity, array(20, 40, 80, 160)) 
{ 
    echo "here"; 
} 

だけ&&||を交換してください。

3

(または)& &(と)による;)

何かが20あるかどうかをチェック。この方法は、何かが40であれば、あなたがチェックなどですから、たとえば40を持っている最初のチェック(= 20)だけ! (あなたが使用しているので)Trueを返し、2回目以降のチェックには達しません。

1

$ quantityがいずれかの値に等しくならないようにするには、 '||'オペレータ 'および' & & 'に送信します。

0

アルゴリズムを計算することで、より高い数字を確認するのが簡単になりました。

反復:

<?php 
for ($i = 0; $i <= 3; $i++) { 
    if ($quantity == pow(2,$i)*20) { echo "not here"; goto matched; } 
} 
echo "here"; 
matched: 
?> 

その他の機能:

<?php 
if (!in_array($quantity, 
    array_map(
    function ($i) { return pow(2,$i)*20; }, 
    range(0,3) 
) 
)) { 
    echo "here"; 
} else { 
    echo "not here"; 
} 
?> 
関連する問題