PHP: изменение цвета текста на основе значения $ value

Каков самый простой способ изменить цвет текста на основе переменной?

Например: если $ var находится между 1-5, зеленым. Между 6-10, Оранжевый. Больше 11, Красный.

function getProperColor($number) { if ($var > 0 && $var <= 5) return '#00FF00'; else if ($var >= 6 && $var <= 10) return = '#FF8000'; else if ($var >= 11) return = '#FF0000'; } 

И используйте его вот так:

 <div style="background-color: <?=getProperColor($result['number'])?>;"><?=$result["title"]?></div> 
 $color = "#000000"; if (($v >= 1) && ($v <= 5)) $color = "#00FF00"; else if (($v >= 6) && ($v <= 10)) $color = "#FF9900"; else if ($v >= 11) $color = "#FF0000"; echo "<span style=\"color: $color\">Text</span>"; 

Значения цвета индексируются константами? Я бы подготовил хэш-карту

 $colorMap[0] = '#00FF00'; //green $colorMap[1] = '#0000FF'; //blue $colorMap[2] = '#FF0000'; //red $colorMap[3] = '#330000'; //dark red 

и так далее. Затем используйте CSS

 <span style="color: <?php echo $colorMap[$var]; ?>;">desired color</span> 

Вам нужно фактически использовать инструкции elseif, если вы собираетесь использовать набор операторов if,

  if ($var < 6) $color = '#00FF00'; elseif ($var < 10) $color = '#FF8000'; elseif ($var > 10) $color = '#FF0000'; 

Я буду использовать цвета CSS, а также подчеркнуть тот факт, что номер 11 не соответствует ни одному цвету в соответствии с вашими правилами, что делает большую часть ответов недопустимыми 🙂

 <?php $color=getColor(11); function getColor($n){ // Is number between 1 and 5? if($n>=1 && $n<=5) return "green"; // Is number between 6 and 10? if($n>=6 && $n<=10) return "orange"; // Is number greater than 11 if($n>11) return "red"; // Return default (black) for all other numbers return "black"; } ?> <span style='color:<?=$color?>'>Text</span> 

Что-то вроде этого трио операторов if:

 if ($var < 10) $color = '#FF8000'; if ($var < 6) $color = '#00FF00'; if ($var >= 10) $color = '#FF0000'; echo "<span style=\"color: $color;\">This text is colored.</span>"; 

Простое решение может состоять в том, чтобы сделать что-то вроде этого …

 if ($var < 6) $style="0F0"; else if ($var < 11) $style="F50"; else $style = "F00"; ?><div style="color:#<?php echo $style; ?>">blar</div> 

Тернарный оператор для вашего простого примера.

  $color = ($var < 6) ? '#FF8000' : (($var < 10) ? '#00FF00' : '#FF0000'); 

Я бы использовал классы CSS вместо встроенного стиля цвета … Пусть CSS работает …

 <?php $var = 5; $class = (($var < 6) ? 'greenclass' : (($var < 11) ? 'orangeclass' : 'redclass' )) ?> <span class="<?php echo $class?>">text</div> 

Если ни один из этих ответов не является тем, который вы ожидаете, что именно вы пытаетесь выполнить? Можете ли вы дать больше информации?

Предполагая, что один работает с диапазонами, это довольно гибко:

 function getProperColor($range, $value) { foreach($range as $key => $color) { if ($value <= $key) return $color; } return $color; } $colorRange = array( 5 => 'green', 10 => 'orange', 11 => 'red' ); for($i=-1;$i<16;$i+=2) { echo "$i:" . getProperColor($colorRange, $i) . "\n"; } 

Это приведет к выводу:

 -1:green 1:green 3:green 5:green 7:orange 9:orange 11:red 13:red 15:red 
 <?php $var='2'; ?> <html> <body> <p>Hello Welcome.I am <?php if($var>0 && $var<=5) echo '<p style=color:Green;>'; else if($var>=6 && $var<= 10) echo '<p style=color:orange;>'; else echo '<p style=color:red;>'; ?> I am a Developer. </p> </body> 
 $color="green"; $text="foo"; echo wrapColor($color, $text); function wrapColor($color, $text){ return "<span style=color:$color>$text</span>"; }