2013-02-04 93 views
-2

我得到了一個if語句,它使用php作爲foreach循環的一部分。讓一個if語句變量的值在php中

什麼id喜歡做的是使if語句變量,以便我可以調用變量。財產以後這樣

$best_xml = if ($wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal']) { 
    $lad_odds_attrib['oddsDecimal']; 
    } 

    else { 
    $wh_odds_attrib['oddsDecimal']; 
    }; 

,但我不斷收到這個錯誤,當我運行它 - 解析錯誤:語法錯誤,意想不到的「如果」上線74(T_IF)在/Applications/MAMP/htdocs/event.php(線74是起始$ best_xml的第一行)

這是可能的/這是正確的方法嗎?

+0

我很困惑。你是否試圖將'if'語句括號中的條件值保存到變量'best_xml'中,或者是否試圖保存兩個響應值'$ lad_odds_attrib ['oddsDecimal'];'或$ wh_odds_attrib ['oddsDecimal '];'變量'best_xml'? – War10ck

+0

即時試圖保存響應值 – sam

+0

得到了亞。然後下面的答案應該工作。對不起,我只是對我們想要保存在這裏的東西感到困惑。感謝您的澄清。 – War10ck

回答

2

if語句不計算爲PHP中的可分配值。你不能將一個if語句分配給一個變量。

可以,但是,使用ternary operator

$best_xml = $wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal'] ? 
    $lad_odds_attrib['oddsDecimal'] : $wh_odds_attrib['oddsDecimal']; 
4

試試這個:

$best_xml = ($wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal']) ? $lad_odds_attrib['oddsDecimal']:$wh_odds_attrib['oddsDecimal']; 

$best_xml那麼將持有的價值要麼$lad_odds_attrib['oddsDecimal'](如果爲true),或$wh_odds_attrib['oddsDecimal'](如果爲false)。

1

不,你不能這樣做,但你可以這樣做:

$best_xml = ($wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal']) ? $lad_odds_attrib['oddsDecimal'] : $wh_odds_attrib['oddsDecimal']; 
0

if沒有返回值,你必須手動賦值

$best_xml = null; 
if ($wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal']) { 
    $best_xml = $lad_odds_attrib['oddsDecimal']; 
} else { 
    $best_xml = $wh_odds_attrib['oddsDecimal']; 
}; 

或者您可以使用三元運算符:

$best_xml = $wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal'] ? 
      $lad_odds_attrib['oddsDecimal'] : $wh_odds_attrib['oddsDecimal']; 
1

是的,其實你可以這些整齊的新東西叫做「函數」做到這一點。你應該看起來像:

function myFunction($var1, $var2) { 
    if ($var1 < $var2) { 
     return $var1; 
    } else { 
     return $var2; 
    } 
} 

$best_xml = myFunction($wh_odds_attrib['oddsDecimal'], $lad_odds_attrib['oddsDecimal']);