【问题标题】:PHP shorthand variable toggle for table row background colors表格行背景颜色的 PHP 速记变量切换
【发布时间】:2015-02-13 00:51:43
【问题描述】:

我最近在 php 中使用以下简写来定义表格行背景颜色。

除了晦涩难懂之外,使用此方法是否有注意事项

 <?php $style = 'style="background-color:#CCC;"'; ?>
 <tr <?php if ($i = !$i) echo $style; ?>>
      <td><input /></td>
 <tr>

$i = !$i 意味着 $i 不能等于 $i,所以如果 $i 第一次为真,它就会变为假,反之亦然。 if当然每次都会检查true or false的值,从而每隔一段时间输出一次样式,得到每隔一个的背景效果。

【问题讨论】:

  • 默默无闻的警告应该是足够的动力考虑另一种选择,因为副作用和条件下的分配通常是不受欢迎的。
  • @BenLee 感谢您的链接,不知道我以前怎么没找到,但我想问题仍然不同(最简单的方式与使用这种方式的注意事项)
  • 在晦涩难懂方面之外,我想知道这种方法是否有任何性能优势/劣势或可能会出现错误。

标签: php html css toggle


【解决方案1】:

我没有理解你的 $i != $i 的逻辑,但如果我明白你想要不同的颜色来交替 TR ,它可以在 css 级别完成。使用 CSS - nth 属性。

试试:

tr:nth-child(odd) {
    background: red;
}

tr:nth-child(even) {
    background: blue;
}

tr:nth-child(2n+1) {
     background: yellow;
} 

注意:使用 2n+02n+1 替代 - 开始第一行 + 2,或第二行 + 2

【讨论】:

  • 不使用 php 的好选择,但是 $i = !$i 切换在 CSS 之外的应用程序中可能很有用......就像任何切换一样。基本上在 php 中,表达式是一个布尔值。所以,它必须是TRUEFALSE。如果是第一个TRUE,那么它就变成FALSE,因为它不能是当前状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 2011-10-06
  • 2013-06-07
  • 1970-01-01
  • 2017-04-14
  • 2011-08-27
相关资源
最近更新 更多