我有一个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)
这可能/这是正确的方法吗?
答案 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'];