PHP 循环设置一次值

PHP Set a value once in a loop

我有一个 php 脚本,它检查一周中的每个星期日并显示当天的数据。

用户可以将当天的值更改为 "Yes" 或“否”。

我想添加一个可能性,即用户不能在每个星期四之后的星期日之前 23:59 更改他们的选择。

我只希望第一个星期天不可编辑。 因为这一切都在一个循环中,显示每个星期日,直到未来的 11 个星期日。我需要找到一种方法只在第一个星期天执行此操作。

$datum_gisteren = new datetime('yesterday');
echo '<tr>';
echo '<td bgcolor="#3c741a" style="color:#FFFFFF;">&nbsp;'.$current_user->first_name.''.' '.''.$current_user->last_name.'</td>
<form action="" method="post">';
for ($i=0; $i<=11; $i++){
    $date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
    $datum = get_the_author_meta( $date_modified, $current_user->ID );
    $time = '23:59'; 
    if(date('l') === 'Thursday' && date('H:i') >= $time && $date_modified === '06-09-15') {
        echo '<td>
        <select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
        '.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
        '.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').' 
        </select></td>';
    }else{
        echo '<td>
        <select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
        <option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
        <option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
        </select></td>';                        
    }
}   

大部分工作已经完成(我相信),但如您所见。第一个 if 语句中的 $date_modified 是 "hardcoded" (06-09-15)。

我希望这个值是下周日的第一个。但由于这是在循环中,所以每个星期天都会显示 11 次。

这个星期天怎么设置一次?

希望它有意义!!!

您可以为其保留额外的变量:

$j = 0;

for ($i=0; $i<=11; $i++){
    $date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
    $datum = get_the_author_meta( $date_modified, $current_user->ID );
    $time = '23:59'; 
    if(date('l') === 'Thursday' && date('H:i') >= $time && $j === 0) {
        $j++;
        echo '<td>
        <select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
        '.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
        '.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').' 
        </select></td>';
    }else{
        echo '<td>
        <select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
        <option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
        <option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
        </select></td>';                        
    }
} 

但最好将 php 逻辑与前端分开。

谢谢。