-2

我有一个 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'];
  };

但是当我运行它时,我一直收到这个错误 - Parse error: syntax error, unexpected 'if' (T_IF) in /Applications/MAMP/htdocs/event.php on line 74(第 74 行是开始 $best_xml 的第一行)

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

4

5 回答 5

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']真)或$wh_odds_attrib['oddsDecimal'](如果为假)的值。

于 2013-02-04T16:15:23.723 回答
2

if语句不会评估为 PHP 中的可分配值。您不能将 if 语句分配给变量。

但是,您可以使用三元运算符

$best_xml = $wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal'] ? 
  $lad_odds_attrib['oddsDecimal'] : $wh_odds_attrib['oddsDecimal'];
于 2013-02-04T16:15:29.510 回答
1

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

$best_xml = ($wh_odds_attrib['oddsDecimal'] < $lad_odds_attrib['oddsDecimal']) ? $lad_odds_attrib['oddsDecimal'] : $wh_odds_attrib['oddsDecimal'];
于 2013-02-04T16:16:39.623 回答
1

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

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

$best_xml = myFunction($wh_odds_attrib['oddsDecimal'], $lad_odds_attrib['oddsDecimal']);
于 2013-02-04T17:12:24.777 回答
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'];
于 2013-02-04T16:16:39.950 回答