当满足if语句时,这个while循环是否会结束

时间:2013-09-16 00:11:10

标签: php while-loop

我有这个功能块,可以在我的电子邮件列中搜索匹配项。找到匹配后,这个While循环是否会继续搜索其他匹配,或者如果满足其中的if语句,它会结束吗?

function find_similar_email ($email) {
    global $con;
    // select db
    mysql_select_db('practice', $con);

    // select a column to search from
    $emailList = mysql_query("SELECT email FROM users", $con);

    // search for similar matches
    while ($emailListResult = mysql_fetch_array($emailList)) {
        if ($email == $emailListResult['email']) {
            return TRUE;
        }
    }
}

3 个答案:

答案 0 :(得分:2)

如果满足if条件,则将执行return语句。这样就离开了函数,并有效地结束了while循环。

答案 1 :(得分:1)

在您的示例中,return将退出该函数,从而有效地终止循环。

但是,您应该使用WHERE子句进行选择,而不是选择所有内容并搜索结果。由于您只是想查看电子邮件地址是否在表格中,您可以这样做:

function find_similar_email ($email) {
  global $con;
  // select db
  mysql_select_db('practice', $con);

  // select all rows with matching email address
  $emailList = mysql_query("SELECT email FROM users where `email`='$email'", $con) or die(mysql_error($con); 

  return(mysql_num_rows($emailList) !== 0);  // return true if we found it, false if we didn't
}

答案 2 :(得分:-1)

“return”退出该功能。所以是的,不会再读取任何行......