Что самый легкий путь состоит в том, чтобы изменить цвет текста на основе переменной?
Например: Если $var между 1-5, зеленый. Между 6-10, Оранжевый. Больше, чем 11, Красный.
$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>";
Я буду использовать цвета 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>
Индексируются ли значения цвета константами? Я бы подготовил хэш-карту
$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>
Простым решением может быть сделать что-то вроде этого...
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>
Если ни один из этих ответов не соответствует вашим ожиданиям, то чего именно вы пытаетесь достичь? Можете ли вы дать больше информации?
Вам действительно нужно использовать инструкции elseif, если вы собираетесь использовать набор операторов if,
if ($var < 6) $color = '#00FF00';
elseif ($var < 10) $color = '#FF8000';
elseif ($var > 10) $color = '#FF0000';
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>
Что-то вроде этой тройки операторов 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>";
$color="green";
$text="foo";
echo wrapColor($color, $text);
function wrapColor($color, $text){
return "<span style=color:$color>$text</span>";
}