2

この状況に遭遇しました。おそらくコードの論理エラーです。

これは私のコードです

foreach ($options as $option) {

if (($option['max_value'] > 0) && $total_value <= $option['max_value']) {
        $selected_options[] = $option['option_id'];
        continue;
    }
    if (($option['min_value'] > 0) && $total_value >= $option['min_value']) {
        $selected_options[] = $option['option_id'];
    }
}

これはうまくいきます。しかし、私が置き換えた場合(これは私が以前に行ったことなので、論理エラーです)

if(($option['min_value'] > 0 ) ..... ) with

if(!empty($option['min_value']) .... ) same for checking max_value.

しかし、問題はmin_valueをチェックしている間だけです

0.0000 を空にしないように扱っているため、期待される出力が得られません。誰かが私に何が悪いのか説明してもらえますか??

$options の値はデータベースから取得されています。2 つの行があります

  1. 最小値 = 0.0000 最大値 = 20.0000

  2. 最小値 = 21.0000 最大値 = 0.0000

ありがとう!!

皆さん、ありがとうございました!!その教訓を学びました!!!

4

4 に答える 4

4

についてのマニュアルを読む必要があります

0.0000は数値ではなく、文字列です。

于 2013-07-02T09:18:07.377 に答える