我想找一个由用户提供的日子,我收到错误:
致命错误:允许的内存大小耗尽134217728个字节(试图分配79个字节)
$days = $array('saturday','sunday'); // it's dynamic array
if(sizeof($days)>0) {
foreach($days as $key => $value) {
$start = strtotime("today"); // your start/end dates here
$end = strtotime("today +6 years");
$friday = strtotime(strtolower($value), $start);
while($friday <= $end) {
//$daysbox[] = date("Y-m-d", $friday);
}
}
}
答案 0 :(得分:1)
你的while循环中绝对没有任何事情发生。你的代码将在while循环中点击,你就会陷入无限循环。
答案 1 :(得分:1)
while($friday <= $end) {
$daysbox[] = date("Y-m-d", $friday);
}
假设当该行没有被注释掉时它会以这种方式崩溃:(否则你会有一个无限循环,但它不会因你描述的错误而崩溃)。
您没有更改$friday
,您没有更改$end
。这意味着如果条件为真,则它将继续保持为真。您所做的只是向数组添加内容。如果这样做无数次,迟早会耗尽内存。
您可能想要更改while循环中的$friday
变量,如下所示:
while($friday <= $end) {
$friday = strtotime("+1 weeks", $friday);
}