Почему «если» оператор вызывает «while» цикл, чтобы заморозить браузер?

У меня есть несколько интересных вопросов. После добавления если заявление к моему в то время как цикл При использовании функции PHP мое окно браузера Chrome, на котором запущен сайт, не отвечает. Я подтвердил, что это если заявление, вызывающее проблему, комментируя это. Все отлично загружается с если Заявления закомментированы.

Результаты одинаковы для обоих циклов.

function disp_editForm($id, $day, $month, $year, $type, $content) {
$d_count = 0;
$m_count = 0;

echo '<select name="editDay" id="editDay" onchange="" size="1">';
while($d_count<31) {
$d_count++;
if($d_count=$day) { $dSelected = "selected"; } // Select value in the drop box
echo '<option value="'.$d_count.'"'.$dSelected.'>'.$d_count.'</option>';
} // End Day While Loop
echo '</select>';

echo '<select name="editMonth" id="editMonth" onchange="" size="1">';
while($m_count<12) {
$m_count++;
if($m_count=$month) { $mSelected = "selected"; } // Select value in the drop box
echo '<option value="'.$m_count.'"'.$mSelected.'>';
mConvert($m_count); // Convert month number into a word
echo '</option>';
} // End Month While Loop
echo '</select>';

}

0

Решение

if($d_count=$day) { $dSelected = "selected"; }
if($m_count=$month) { $mSelected = "selected"; }

должно быть

if($d_count==$day) { $dSelected = "selected"; }
if($m_count==$month) { $mSelected = "selected"; }

Вы делаете задание (=) здесь, а не сравнение равенства (==).

4

Другие решения

Использовать оператор сравнения равенства == вместо =

f($d_count==$day) { $dSelected = "selected"; }
if($m_count==$month) { $mSelected = "selected"; }
2