php - PHP Store变量没有回显?
问题描述
我正在尝试使用开关根据日期更改文本/图像,但是,由于某种原因,我实际上必须这样做,echo $current_date;
否则我的开关似乎无法获取值?
$start_date = '2018-10-15';
$end_date = '2018-10-27';
$current_date = date('Y-m-d');
echo $current_date;
while (strtotime($start_date) <= strtotime($end_date)) {
switch($current_date) {
case "2018-10-15":
$text = 'todays text';
$image = 'https://www.image.com';
break;
case "2018-10-16":
$text = 'todays text2';
$image = 'https://www.image.com2';
break;
}
}
echo $text;
https://repl.it/repls/EthicalJuicyLocks
从上面的 REPL 可以看出。有什么方法可以将值传递给$current_date
开关而不需要调用它?
解决方案
您的问题不是与日期相呼应,因为它对切换绝对没有影响。问题是你的while循环永远不会结束($start_date
并且$end_date
是静态的,所以start_date
总是小于或等于$end_date
)
因此,您永无止境的 while 循环会阻止将任何输出发送到标准输出。事先呼应日期只会让您产生某种工作或不工作的错觉,但这只是错觉。
防止无限循环很重要。您应该始终放置一些控件以防止循环跑掉。它可以是一个计数器并在给定的迭代次数后停止,在下一次迭代之后放置的停止会产生小于给定阈值的结果变化,等等。
如果您想要的只是输入代码的一部分,如果当前日期在开始日期和结束日期之间,您可以使用两个子句 if
if ($current_date >= $start_date && $current_date <= $end_date)
{
// Do whatever you need when you are between the boundary dates
}
用这个替换while,让我知道
推荐阅读
- pysimplegui - PySimpleGUI 获取选定的文本
- python - 将变量从 HTML 传递到 Python 应用程序以使用 Django 执行
- reactjs - 为什么 React 中的 componentWillMount()、componentWillUpdate() 等生命周期方法不安全?
- python - 如何更正 pytest“NameError:name * 未为并行源和测试文件夹定义
- javascript - 如何通过赛普拉斯测试索引 Redux 存储中的最后一个元素?
- angular - 如何使用 Promises 和 HTTP 请求对服务进行 Angular 8 单元测试?
- amazon-web-services - AWS:APIGateway 自定义响应正则表达式无法匹配
- c++ - 如何定义一个保证不更改其参数的函数,即使参数是非常量的?
- javascript - 如何等待特定 jQuery 选择中的所有图像加载?
- java - RestTemplate 线程和多个用户