Использование результатов оператора IF для выполнения второго оператора IF - PullRequest
0 голосов
/ 27 января 2020

Результаты первого оператора IF, который выводит результаты. Я хотел бы использовать два выведенных значения для манипулирования вторым оператором IF, чтобы либо принять значение $loadedWeightUSTons, либо $emptyWeight, только одно возвращает значение в любой момент времени. Я пытался использовать $loadWeightUSTons or $emptyWeight в каждой из инструкций if или ifelse, но безрезультатно. Может ли кто-нибудь помочь.

1-й IF IFment

if ($loadWeightUSTons == 0) {
            echo "E";
        }else {
            echo "L";
        }
    echo "</td>";
    echo "<td>";
    if ($loadWeightUSTons == 0){
        $emptyWeight = "Not Found!";
        foreach($railunit->railUnit as $ru) {
            if((string)$ru->rvXMLfilename == $rvXMLfilename){
                $emptyWeight = (string)$ru->unitWeight;
            } 
        }
        echo $emptyWeight;
    }else{
      echo  $loadWeightUSTons;
            }

2-й IF IFment

if ($loadWeightUSTons <= 10) {
            echo "X";
        } elseif ($loadWeightUSTons <= 20){
            echo "XX";
        } elseif ($loadWeightUSTons <= 30){
            echo "XXX";
        } elseif ($loadWeightUSTons <= 40){
            echo "XXXX";
        } elseif ($loadWeightUSTons <= 50){
            echo "XXXXX";
        } elseif ($loadWeightUSTons <= 60){
            echo "XXXXXX";
        } elseif ($loadWeightUSTons <= 70){
            echo "XXXXXXX";
        } elseif ($loadWeightUSTons <= 80){
            echo "XXXXXXX";
        } elseif ($loadWeightUSTons <= 90){
            echo "XXXXXXXX";
        } elseif ($loadWeightUSTons <= 100){
            echo "XXXXXXXXX";
        } elseif ($loadWeightUSTons <= 110){
            echo "XXXXXXXXXX";
        } elseif ($loadWeightUSTons <= 120){
            echo "XXXXXXXXXXX";
        } elseif ($loadWeightUSTons <= 130){
            echo "XXXXXXXXXXXX";
        } elseif ($loadWeightUSTons <= 140){
            echo "XXXXXXXXXXXXX";
        } elseif ($loadWeightUSTons <= 150){
            echo "XXXXXXXXXXXXXX";
        }  else{
            echo "Error!";
        } 

Ответы [ 2 ]

0 голосов
/ 27 января 2020
if ($loadWeightUSTons > 150) {
    echo "Error!";
} else {
    echo str_repeat("X",ceil($loadWeightUSTons/10));
}

Но я бы порекомендовал просто вывести число как есть. Наличие этих XXX не более информативно, чем число. Это принесет лучший UX. Особенно, если вы ограничите это число до 150, и у вас там будут длинные значения чисел, такие как 1 234 567 890.

0 голосов
/ 27 января 2020

В итоге я принял совет сверху и применил его к заявлению IF, которое видно ниже. Он заменил громоздкий оператор if elseif.

 if ($loadWeightUSTons == 0){
        echo str_repeat('X', ceil($emptyWeight/10));
      }else{
        echo str_repeat('X', ceil($loadWeightUSTons/10));
      }
...