Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果声明挂断_Php_Regex_If Statement_While Loop_Infinite Loop - Fatal编程技术网

Php 如果声明挂断

Php 如果声明挂断,php,regex,if-statement,while-loop,infinite-loop,Php,Regex,If Statement,While Loop,Infinite Loop,我有一个while循环,它包含一个if语句。while循环工作正常,但是当我为通过while循环的每个值运行下面的if语句,并且if语句返回true时,脚本挂起,我得到了最长30秒的执行时间错误 我不确定它是在创建一个无限循环还是什么。有人能发现问题吗 $size = count($_POST['itemname']); // start a loop in order to update each record $i = 0; while ($i < $size) { // defin

我有一个while循环,它包含一个if语句。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



}
}
$size=count($\u POST['itemname']);
//启动循环以更新每个记录
$i=0;
而($i<$size){
//定义每个变量
$itemname=$_POST['itemname'][$i];
$id=$_POST[“id”][$i];
if(preg_match('/[A-Za-z]/',$itemname)){
echo(“有词”);
}否则{
//在此更新代码
}
}

您永远不会增加
$i
,这就是挂起它的原因,因为它总是
<$size

while ($i < $size) { // changed this to >
    // define each variable
    $itemname= $_POST['itemname'][$i];
    $id = $_POST["id"][$i];
    $i++; // increment $i
while($i<$size){//将此更改为>
//定义每个变量
$itemname=$_POST['itemname'][$i];
$id=$_POST[“id”][$i];
$i++;//增量$i

您永远不会增加
$i
。请尝试使用for循环,因为它们更加明确。

您永远不会在while循环中更改$i

您需要在if语句之外的某个地方增加$i。

您必须为每个循环增加$i,否则一旦它始终通过,如果它是真的话 将$i++添加到最后两个 } } 看来 } $i++;
}

使用
foreach
循环,这可能会简单得多。