【问题标题】:Color depending on value颜色取决于价值
【发布时间】:2021-05-01 14:01:45
【问题描述】:

我在脚本中多次使用此代码。有没有办法缩短这段代码?提前谢谢你。

if ($aUurverschil < 0){$avroegerkleur = "red";} 
if ($aUurverschil > 0){$avroegerkleur = "green";}
if ($aUurverschil == 0){$avroegerkleur = "#48f442";}

if ($bUurverschil < 0){$bvroegerkleur = "red";} 
if ($bUurverschil > 0){$bvroegerkleur = "green";}
if ($bUurverschil == 0){$bvroegerkleur = "#48f442";}

等等等等

我在 div 中使用它们:

<div style="display:inline;color:<? echo $avroegerkleur;?>;">

【问题讨论】:

  • 您有重复的条件。按照目前的情况,不会将任何颜色设置为 green
  • 至于优化,如果条件相同,就放到一个函数中复用。
  • 如果你“多次使用这段代码”...让它成为一个函数?
  • 我已经更正了,谢谢。
  • 您以什么方式“多次使用此代码”?目前还不清楚是什么问题。

标签: php css colors


【解决方案1】:

你可以抽象出这个逻辑:

if ($bUurverschil < 0){$bvroegerkleur = "red";} 
if ($bUurverschil > 0){$bvroegerkleur = "green";}
if ($bUurverschil == 0){$bvroegerkleur = "#48f442";}

变成一个函数,例如:

function getColor($uurverschil) {
  return ($uurverschil < 0 ? "red" :
         ($uurverschil > 0 ? "green" :
         ("#48f442")));
}

然后,在您想使用该逻辑的任何地方,只需使用您正在检查的值调用该函数:

<div style="display:inline;color:<? echo getColor($aUurverschil); ?>;">

【讨论】:

  • 这将始终返回“绿色”?...(除非它是 0)
  • 效果很好,非常感谢@David!!
  • 仅供参考 - 您只需要在第二个三元运算符 $uurverschil &lt; 0 ? "red" : ($uurverschil &gt; 0 ? "green" : "#48f442") 周围加上括号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 2012-10-01
  • 2021-06-23
  • 1970-01-01
相关资源
最近更新 更多