0

鉴于此代码:

while($thisrow = mysqli_fetch_array($thisresult)){
    if($thisrow['displaythis'] == 'yes'){
        echo $thisrow['name'];
    } else {
        continue;
    }
        $associatedquery = "select * from database where id = $thisrow['associated']";
        $result = mysqli_query($associatedquery);
        while($row = mysqli_fetch_array($result)){
            echo $row['name'];
        }
 }

如果 $thisrow['displaythis'] == no,它会“继续”处理关联的查询,还是返回到第一个 while 语句中的下一个值?如果不是,我怎样才能跳回到第一个 while 语句中的下一个值并跳过关联查询?我知道我可以将整个“关联查询”段放在 if = 'yes' 语句中,但我不想这样做。

4

3 回答 3

2

继续跳过当前迭代的进一步处理并进入下一个迭代。

于 2013-07-04T21:05:27.773 回答
0

要回答您的问题, continue 将返回循环语句并从循环中的下一个值重新开始,它不会在 continue 语句之后执行循环的任何下半部分。if 语句不是循环,但是for,whileswitch语句在 php 中被认为是循环

所以你的问题的答案是YES

这里有更深入的解释

于 2013-07-04T21:11:08.483 回答
0

问:它会回到第一个 while 语句中的下一个值吗?

答:的,因为continue将“继续”从循环中的条件检查预期值,if并跳过其余代码的执行,直到break循环或它完成。

检查一些示例和用法:

http://es1.php.net/continue

于 2013-07-04T21:13:40.813 回答