2016-07-12 64 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£ 

請問有人可以解釋一下是怎麼回事?第一個結果就是我實際想要實現的目標,我只是想用較少的代碼來實現。

非常感謝

+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「