我有一个包含if语句的while循环。 while循环工作正常但是当我为通过while循环传递的每个值运行以下if语句,并且if语句返回true时,脚本挂起并且我得到30秒的最大执行时间错误。
我不确定它是创建无限循环还是什么。有谁能发现问题?
$size = count($_POST['itemname']);
// start a loop in order to update each record
$i = 0;
while ($i < $size) {
// define each variable
$itemname= $_POST['itemname'][$i];
$id = $_POST["id"][$i];
if(preg_match('/[A-Za-z]/',$itemname)) {
echo("has words");
} else {
//update code here
}
}
答案 0 :(得分:4)
你永远不会增加$i
,因为它总是< $size
while ($i < $size) { // changed this to >
// define each variable
$itemname= $_POST['itemname'][$i];
$id = $_POST["id"][$i];
$i++; // increment $i
答案 1 :(得分:3)
你永远不会增加$i
。尝试使用for循环;他们更明确一点。
答案 2 :(得分:3)
你需要在if语句之外的某处增加$ i。
答案 3 :(得分:2)
你永远不会在while循环中改变$ i
答案 4 :(得分:2)
你必须为每个循环增加$ i,否则如果它总是通过则为true 在最后2个之间添加$ i ++ } } 所以它看起来 } $ I ++; }