为什么 "if" 语句导致 "while" 循环冻结浏览器?

Why is "if" statement causes "while" loop to freeze the browser?

我有一个有趣的问题。将 if 语句添加到我的 while 循环 with-in PHP 函数后,我的 (Chrome) 浏览器 window 运行 站点不会响应。我已经通过注释掉它来验证它是导致问题的 if 语句。注释掉 if 语句后,所有内容都加载得很好。

两个循环的结果相同。

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>';

}

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

应该是

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

你在这里做的是赋值(=)而不是相等比较(==)。

使用相等比较运算符==代替=

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