$i = 0;
while ($have_something) {
if($i == 0 || $i == 3 || $i == 6 || $i == 9) {
$color = 'black';
}
else {
$color = 'white';
}
$i++;
}
当while
循环中的项目计数是动态的并且变化规则时,此代码出现问题,当它可能有数百个项目时,这意味着if
语句将非常长。
如何克服这个问题并“自动化”它以便每个 X 项目都会发生某些事情而其余的事情没有硬编码$i
计数?
答案 0 :(得分:6)
使用模数运算符%
:
$i = 0;
while ($have_something) {
if($i % 3 == 0 ) {
$color = 'black';
}
else {
$color = 'white';
}
$i++;
}
答案 1 :(得分:0)
使用php生成我认为的类或内联颜色定义的替代方法是使用nth-of-type(3n)
样式选择器纯粹在css中。
<style>
#rep{ width:80%; float:none; margin:5rem auto; box-sizing:border-box; padding:1rem; }
#rep div{ width:100%; float:none; margin:0.1rem auto; box-sixing:border-box; border:1px solid black; }
#rep div:nth-of-type(2n){ background:whitesmoke; }
#rep div:nth-of-type(3n){ background:gray; }
#rep div:nth-of-type(4n){ background: #f0ffff; }
#rep div:nth-of-type(5n){ background: #f0fff0; }
#rep div:nth-of-type(6n){ background: #e0ffff; }
#rep div:nth-of-type(7n){ background: #f0f8ff; }
#rep div:nth-of-type(8n){ background: #e6e6fa; }
#rep div:nth-of-type(9n){ background: #b0e0e6; }
</style>
echo "<div id='rep'>";
for( $i=0; $i < 30; $i++ ) echo "<div>$i</div>";
echo "</div>";
无论如何,只是一个想法!
或者,更好的css选择器可能是nth-child
#rep div:nth-child(3n){background:black;
}
如果您对此技术感兴趣,那么可能是handy guide