2016-07-12 9 views
0

午後すべて、私はコードを最適化して削減しようとしています。私は周り私の頭を取得カント次PHPのif文または動作しない

このコード...

$asset_array = array('steel', 'copper', 'gold', 'silver'); 
foreach ($asset_array as $asset){ 
    $symbol = ""; 
    if ($asset == "gold"){ 
     $symbol = "£"; 
    } 
    if ($asset == "silver"){ 
     $symbol = "£"; 
    } 
    echo $asset . $symbol . "<br />"; 
} 

エコーのこの...

steel 
copper 
gold£ 
silver£ 

しかし、このコード...

$asset_array = array('steel', 'copper', 'gold', 'silver'); 
foreach ($asset_array as $asset){ 
    $symbol = ""; 
    if ($asset == "gold" || "silver"){ 
     $symbol = "£"; 
    } 
    echo $asset . $symbol . "<br />"; 
} 

エコーはこれです...

steel£ 
copper£ 
gold£ 
silver£ 

誰かが何が起こっているのか説明できますか? 1つ目の結果は、私が実際に達成しようとしていることです。私はコードを少なくしてやろうとしていました。あなたが両側に変数を指定する必要が

多くのおかげ

+0

16時間早く:http://stackoverflow.com/q/38316392/3933332 – Rizier123

+0

これを試してください($ asset ==" gold "|| $ asset ==" silver ") – Dave

+0

する必要がありますPHP [オペレータ優先順位](http://php.net/manual/en/language.operators.precedence.php)、 dその優先順位から来る実行順序。 –

答えて

0

if ($asset == "gold" || $asset == "silver"){ 

それ以外の場合は、資産が銀に等しい場合」として読み込み、またはそれは0ではないので、この文字列は常に真である場合/ false/null "