如何解决PHP for 循环对每第二个和第三个项目做一些不同的事情
我正在使用 for 循环创建一个以 X 为 3 的模式的项目网格。每列项目都需要具有不同的属性,但我正在努力寻找解决方案来准确选择正确的项目。目前我一直在尝试使用 Mod %。
我试图实现的一个例子:
[红] [蓝] [绿]
[红] [蓝] [绿]
[红] [蓝] [绿]
[红] [蓝] [绿] 等
我一直在使用 switch 来尝试实现这一目标:
for($i = 1; $i <= 20; $i++) {
switch($i) {
case ($i % 3 == 0):
/* Do column three*/
break;
case ($i % 2 == 0):
/* Do column two*/
break;
Default:
/* Do column one*/
break;
}
}
问题是每一列并不是每次都计算为相同数字的倍数,而且我不想尝试为每种可能性都包含一个案例。
有没有办法简单地实现这一目标?
解决方法
您在应该使用 switch
的地方使用了 if
。两者不能 100% 互换。
特别是,您对 $i
的切换永远不会真正等于 case
子句中的布尔 (true/false) 条件。更一般地说,动态 case
子句通常表明您无论如何都应该使用 if
。 switch
用于根据常量选项检查动态值,这是一组特定的已知可能值。
只需使用 if
来清楚表达逻辑:
for($i = 1; $i <= 20; $i++) {
if ($i % 3 == 0) {
/* Do column three*/
} else if ($i % 2 == 0) {
/* Do column two*/
} else {
/* Do column one*/
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。