PHP for循环返回单值

时间:2013-01-01 16:12:14

标签: php loops for-loop return-value

我想让for循环返回单个值(TRUE / FALSE)。但代码返回多个值。像TRUETRUETRUE一样。我理解代码,但没有任何想法。

public function user_activation_check(){
    for($i=1;$i<5;$i++){
        $query = $this->db->query("SELECT group_info.member".$i." FROM `group_info` INNER JOIN `user_student` ON group_info.member$i=user_student.email WHERE user_student.email=group_info.member$i");
        if($query->num_rows()==1){
            //return TRUE;
            echo"true";
        }else {
            //return FALSE;
            echo"false";
        }
    }
}

请帮助。

更新:

public function member_activation(){
    if($this->model_users->user_activation_check()){
        $this->load->view('v_confirm_group');
    }else echo "Some members didn't activate their account.";
}

3 个答案:

答案 0 :(得分:4)

使用与:

相同的数组
     $res = array():
for($i=1;$i<5;$i++){
    $query = $this->db->query("SELECT group_........");
    if($query->num_rows()==1){
        $res[] = TRUE;
    }else {
        $res[] =  FALSE;
    }
}
return $res;

答案 1 :(得分:1)

我认为这就是你想要的:

public function user_activation_check(){
   for($i=1;$i<5;$i++){
        $query = $this->db->query("SELECT group_info.member".$i." FROM `group_info` INNER JOIN `user_student` ON group_info.member$i=user_student.email WHERE user_student.email=group_info.member$i");
        if($query->num_rows()==1){
            // do nothing
        }else {
            echo "false"; // *atleast* one member didn't.
            return FALSE;
        }
    }
    echo "true";
    return TRUE;
}

答案 2 :(得分:0)

它回显了多个值,因为您正在运行循环。它将回显五个值,每个值对应一个循环。如果您只希望回显一次,请使用return。函数可以多次回显,但只能返回一个值。当它返回true或false时,它结束函数的执行。