Функция PHP, чтобы установить цвет по переменной - PullRequest
2 голосов
/ 30 сентября 2011

В любом случае, чтобы сделать функцию php из этого? Кажется, второй набор переменных убивает любую функцию, которую я пытаюсь написать.

  $flow = (15);
  $low = (10);
  $good =(20);
  $high =(30);


if ($flow <= $low)
   $class = "tdy";
else if (($flow > $low) && ($flow <= $good))
   $class = "tdg";
else if ($flow >= $high)
   $class = "tdr";

Я пытался создать функцию с этим, но она просто не достигает высокой переменной. Один оператор if else отлично работает с переменными. Было бы сэкономить кучу времени, если бы я мог просто сбросить переменные и вызвать оператор if else с функцией в каждом экземпляре.

Ответы [ 3 ]

1 голос
/ 30 сентября 2011

Я думаю, что ваша логика может быть проще:

function getColor($flow, $low, $good) { 
    if ($flow <= $low) 
        return "tdy"; 

    if ($flow <= $good) 
        return "tdg"; 

    return "tdr"; 
} 

Поскольку вторая проверка ($ flow> $ low) в первом случае if бесполезна, поскольку, если это так, выполняется первый оператор if.,И, конечно, если выполняется еще один, если не выполняется, единственный вариант - последний, если он делает проверку бесполезной.

0 голосов
/ 30 сентября 2011
<?php
$def = array(10=>'tdy',20=>'tdg',30=>'tdr');

foreach(array(9,10,11,19,20,21,29,30,31) as $i) {
    printf("%02d %s\n", $i, foo($i, $def));
}

function foo($val, $sel) {
    foreach($sel as $k=>$v) {
        if ( $val<=$k ) {
            return $v;
        }
    }
    return end($sel);
}

печать

09 tdy
10 tdy
11 tdg
19 tdg
20 tdg
21 tdr
29 tdr
30 tdr
31 tdr
0 голосов
/ 30 сентября 2011
function getColor($flow, $low, $good, $high) {
    if ($flow <= $low)
        return "tdy";
    else if (($flow > $low) && ($flow <= $good))
        return "tdg";
    else if ($flow >= $high)
        return "tdr";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...