2013-09-27 47 views
0

太陽我試圖找到用戶提供誰了一天,我收到錯誤:得到錯誤,同時試圖找到SAT或使用PHP

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 79 bytes)

$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

是上面的代碼中,正是你的代碼,所有的代碼,不過你的代碼,就是這樣簡單寫入所有評論? –

+0

它究竟在哪一行拋出錯誤?數組信息是否準確 - 它包含什麼? –

+0

它不是我的谷歌,但我想改變根據我的要求。 – HeartDisk

回答

1
while($friday <= $end) { 
    $daysbox[] = date("Y-m-d", $friday);     
} 

假設它以這種方式崩潰時,該行沒有被註釋掉:(否則,你將有一個無限循環,但不會跟你描述的錯誤崩潰)。

你並沒有改變$friday,你沒有改變$end。這意味着如果條件成立一次,它將繼續保持真實。你所要做的就是給數組添加一些東西。如果你這樣做了無數次,遲早你會用完內存。

你可能想改變你的while循環裏面的$friday變量,就像這樣:

while($friday <= $end) { 
    $friday = strtotime("+1 weeks", $friday); 
} 
1

但絕對沒有在你的同時回事循環。你的代碼會打到while循環,並且你陷入了無限循環。

相關問題