2013-02-04 56 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']);