-2

foreachループの一部としてphpで使用しているif文があります。

やりたいことは、変数を呼び出すことができるように、if ステートメントを変数にすることです。このようなもの

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

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

しかし、実行するとこのエラーが発生し続けます-解析エラー:構文エラー、予期しない 'if' (T_IF) in /Applications/MAMP/htdocs/event.php 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']次に、 (true の場合) または(false の場合)のいずれかの値を保持します$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

はい、実際には、「関数」と呼ばれるこれらのきちんとした新しいものを使用してこれを行うことができます。あなたは次のようになります。

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 に答える
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 に答える
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 に答える