在if语句中创建一个变量的值

时间:2013-02-04 16:14:06

标签: php variables if-statement

我有一个if语句,我在php中使用作为foreach循环的一部分。

id喜欢做的是将if语句变为变量,以便我可以调用变量。这样的事情

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

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

但是当我运行它时我一直收到这个错误 - 解析错误:语法错误,第74行/Applications/MAMP/htdocs/event.php中的意外'if'(T_IF)(第74行是第一行起始$ best_xml)

这可能/这是正确的方法吗?

5 个答案:

答案 0 :(得分: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 :(得分:2)

if语句不会在PHP中计算为可赋值。您不能将if语句分配给变量。

但是,您可以使用ternary operator

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

答案 2 :(得分:1)

不,你不能这样做,但你可以使用它:

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

答案 3 :(得分:1)

是的,事实上你可以用这些称为“函数”的新东西来做这件事。你应该看起来像:

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

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

答案 4 :(得分: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'];