循环通过$_POST.循环结束后如何停止


Looping though $_POST. How to stop when looping has finished?

当for每条语句停止循环时,我希望此函数返回false。如果它不是空的,那也是真的。

function check_empty($post_array){
        $items_in_array = count($post_array); //array length
        echo $items_in_array;
        foreach($post_array as $key=>$value){
            if(empty($value)){
                echo $key . " field cannot be left empty" . "</br>";
            }
        }
        return false;
    }

注意:如果我在foreach内部返回false,它将在第一次迭代时立即停止。我希望它完成迭代,并且只有在迭代完该数组($post_array)中的所有值时才停止

function check_empty($post_array){
    $items_in_array = count($post_array); //array length
    echo $items_in_array;
    if($items_in_array < 1){
         echo 'no data submitted';
         return false;
    }
    $errors = '';
    foreach($post_array as $key=>$value){
        if(empty($value)){
            $errors.= $key . " field cannot be left empty" . "</br>";
        }
    }
    if($errors){
         echo $errors;
         return false;
    }
    return true;
}

你问的问题并不明显,但上面的第一个空值返回false。如果没有发现空值,函数将返回真正的

如果我在foreach内部返回false,它将在第一次迭代时停止。我希望它完成迭代,并且只有在迭代完所有值时才停止

所以一个空值会被认为是某种"错误",一个这样的错误应该足以使函数返回false?

function check_empty($post_array){
    $no_empty_fields = true;
    foreach($post_array as $key=>$value){
        if(empty($value)){
            $no_empty_fields = false;
            // plus whatever additional handling you need here
        }
    }
    return $no_empty_fields;
}

要停止,可以使用break;return;

如果你想停下来参加比赛,请休息
如果您想退出循环并使用completeley函数,则返回。

function check_empty($post_array){
        $items_in_array = count($post_array); //array length
        echo $items_in_array;
        $rtVl = false
        foreach($post_array as $key=>$value){
            if(empty($value)){
                echo $key . " field cannot be left empty" . "</br>";
            }
            $rtVl = true;
        }
        return $rtVl;
}

您可以使用breakreturn false语句退出循环。

  foreach($post_array as $key=>$value){
        if(empty($value)){
            echo $key . " field cannot be left empty" . "</br>";
            break;//or return false;
        }
    }

返回或中断;当你的条件得到满足时。