2009-08-23 2 views
0

PHPはif文をどのように読みますか?コードはランダムに振る舞うの順に文if文を読むPHPの理解方法

if ($number_of_figures_in_email < 6) { 
     -- cut: gives false 
} 


if($number_of_emails > 0) {                   
     -- cut: gives false 
} 

if ($number_of_emails == 0) { 
    -- cut: gives true 
} 

場合

は、私は、次のを持っています。時には3番目のif節に行き、時には入力変数が一定の最初の2つのif節のいずれかに成功することがあります。

これは、if文だけではコーディングできないことを示唆しています。あなたは文は、elseifを使用する場合は、このように、多くの異なっからの結果の一つだけを返すようにしたい場合は

+0

ありがとうございました! –

答えて

6

、それはあなたがするそれを言うことありません:

if ($a) { 
    // do A 
} 

if ($b) { 
    // do B 
} 

if ($c) { 
    // do C 
} 

3つの3つのifsは互いに独立しています。 $a,$bおよび$cがすべてtrueの場合は、A、B、Cが実行されます。$a$cのみが真であれば、AとCのようになります。

あなたがより多くの「相互依存的」条件を探しているなら、if..elseまたはネストされたifsを使用します。上記の1つのアクションだけで

if ($a) { 
    // do A and nothing else 
} else if ($b) { 
    // do B and nothing else (if $a was false) 
} else if ($c) { 
    // do C and nothing else (if $a and $b were false) 
} else { 
    // do D and nothing else (if $a, $b and $c were false) 
} 

が実行されます。 BとCの両方上記で

if ($a) { 
    // do A and stop 
} else { 
    // $a was false 
    if ($b) { 
     // do B 
    } 
    if ($c) { 
     // do C 
    } 
} 

行われますが、$aは偽である場合にのみしまうかもしれません。

これは、BTWはかなり一般的であり、PHP固有のものではありません。

5

:それは「ランダムに動作しない」

if ($number_of_figures_in_email < 6) { 
     -- cut: gives false 
} 
elseif($number_of_emails > 0) {                   
     -- cut: gives false 
} 
elseif ($number_of_emails == 0) { 
    -- cut: gives true 
}