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

Что самый легкий путь состоит в том, чтобы изменить цвет текста на основе переменной?

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

5
задан PeeHaa 29 January 2012 в 03:06
поделиться

10 ответов

$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>";
5
ответ дан 18 December 2019 в 06:11
поделиться

Я буду использовать цвета 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>
2
ответ дан 18 December 2019 в 06:11
поделиться

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

$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>
4
ответ дан 18 December 2019 в 06:11
поделиться

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

if ($var < 6)
    $style="0F0";
else if ($var < 11)
    $style="F50";
else
   $style = "F00";

?><div style="color:#<?php echo $style; ?>">blar</div>
1
ответ дан 18 December 2019 в 06:11
поделиться

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

  $color = ($var < 6) ? '#FF8000' :  (($var < 10) ? '#00FF00' : '#FF0000');
1
ответ дан 18 December 2019 в 06:11
поделиться

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

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

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

0
ответ дан 18 December 2019 в 06:11
поделиться

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

 if ($var < 6) $color = '#00FF00';
elseif ($var < 10) $color = '#FF8000';
elseif ($var > 10) $color = '#FF0000';
2
ответ дан 18 December 2019 в 06: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>
10
ответ дан 18 December 2019 в 06:11
поделиться

Что-то вроде этой тройки операторов 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>";
2
ответ дан 18 December 2019 в 06:11
поделиться
$color="green";
$text="foo";
echo wrapColor($color, $text);

function wrapColor($color, $text){
return "<span style=color:$color>$text</span>";
}
-1
ответ дан 18 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: