簡體   English   中英

在while循環的最后一次迭代中保留變量

[英]Leave variable on last iteration of while loop

我在代碼中陷入困境。 變量$end_date在while循環中進行迭代,以顯示五章的結束日期。 現在,基於此變量,我必須顯示一個警報框。 我的問題是,當找到上一章的結束日期時,會彈出警告框,這是無效的,因為對於其他四個章節,結束日期已延長。 我如何只保留最后一章的結束日期,並且警報框的條件不匹配。 我對此進行了很多嘗試,但無法為此做出邏輯。 幫助或建議,將不勝感激。

  if((strtotime($today_date) >= strtotime($end_date) || ( $pass_count == 0 && $status_request != 2 && $status_request != 0 ) ) )
  {


 echo ("<SCRIPT LANGUAGE='JavaScript'>
       mess1='Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.'  

       x = confirm(mess1);
       if (x == true)  
   {
       window.location = 'validity_request_mail.php?userid=$userid ';    

   } 

       </SCRIPT>");

 }

我們可能會引入一個名為$last_date的新變量,用於捕獲所有章節的“最大”結束日期。

看來問題是在while()循環之后,設置了$end_date ,它應該是最后一個日期。 但是最后(第5次迭代)具有$end_date之前其他$end_date其他章節(S),所以顯示confirm()對話框是不正確的(因為有一些章節那些尚未到期)。

所以這應該解決它:

while (...) { 
    ... 
} 
... 
// snippet in OP's post

至:

$last_date = '';
while (...) { 
    ... 
    if ( strtotime($end_date) > strtotime($last_date) ) { 
        $last_date = $end_date; 
    } 
} 
... 
$end_date = $last_date; // continue with snippet in OP's post

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM