为什么 "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"; }
我有一个有趣的问题。将 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"; }