我的问题是我必须实现变量条件,这意味着用户能够在一段时间内定义一个VALUE。这个数据将存储在mysql中。 PHP用于服务器端。
即
FROM 2018-01-01 TO 2018-01-03 VALUE 10;
FROM 2018-01-04 TO 2018-01-06 VALUE 20;
DEFAULT (used if not in time gap) VALUE 100;
因此我认为开关盒可以是一种选择。但是有可能对案例进行foreach循环吗?
像:
$date = "2018-01-01";
switch ($date) {
foreach(... as $data){
case $data:
//load variable
break;
}
default:
//load default values
}
也许我的方向错了 - 请等一下。
答案 0 :(得分:1)
不,你的语法错了。在我能想到的所有编程语言中,不允许重叠块。开关块可以包含在环路中,或者其中的一个或多个情况中。块可以包含自己的循环。 ( switch 是一种特殊情况,因为它可能没有其他代码的 case 语句。)
您(在某种意义上)尝试在其中的if语句块内终止for循环块。
答案 1 :(得分:-2)
您的代码存在的问题是它无法维护,难以理解且效率稍低。
最简单的方法是运行一个cron作业或其他一些周期性的工作,并检查今天的日期是否属于用户在mysql数据中定义的日期区域。
您可以使用更好的SQL语句来获取数据并以稍微不同的方式存储它 - 例如:
起始日期 END_DATE
然后你的SQL结果将完成当前switch语句的所有工作(switch语句无论如何都不会按预期工作)。