【发布时间】:2018-05-31 07:30:22
【问题描述】:
我正在编写一个排班应用程序。此声明检查通过预订额外班次,用户不会违反他们连续预订超过 7 个夜班的规则。这段代码运行良好,但我试图找到一种更优雅的方式来编写它,例如在 if 语句中使用 for 循环。这个 sn-p 存在于一个更大的 while 循环中。
if (
$original_shift->night_shift==true &&
$p_lookback_night_7===[1,1,1,1,1,1,1] || $p_lookforward_night_7===[1,1,1,1,1,1,1] ||
($p_lookback_night_1===[1] && $p_lookforward_night_6===[1,1,1,1,1,1]) ||
($p_lookback_night_2===[1,1] && $p_lookforward_night_5===[1,1,1,1,1]) ||
($p_lookback_night_3===[1,1,1] && $p_lookforward_night_4===[1,1,1,1]) ||
($p_lookback_night_4===[1,1,1,1] && $p_lookforward_night_3===[1,1,1]) ||
($p_lookback_night_5===[1,1,1,1,1] && $p_lookforward_night_2===[1,1]) ||
($p_lookback_night_6===[1,1,1,1,1,1] && $p_lookforward_night_1===[1])
) {
return 'You can\'t do more than 7 night shifts in a row';
break;
}
$p_look 变量由一个循环填充,该循环在变量名称末尾向后或向前查看指定天数,并返回该天数的真或假数组,具体取决于这些天数是否为夜班与否。
【问题讨论】:
-
如何填充所有
$p_lookback_night_7(和 $p_lookforward_night_7)变量?
标签: php for-loop if-statement