循环验证检查,如果其中一个检查返回false,则返回false?

时间:2014-09-25 16:40:26

标签: php loops methods boolean

我试图找出一种循环使用返回true或false的验证方法的对象的方法,然后知道是否有任何对象返回false。

    $validate_form = true;

    //Loop through groups
    foreach ($this->field_groups as $field_group) {


        //Loop through fields
        foreach ($field_group->fields as $field) {


            $validated = $field->validate($data[$field->name]);
            //if any of these returned false, set $validate_form to false

        }

    }

    return $validate_form;

但我根本无法说清楚如何实现这一目标。我已经考虑过使用数组,然后检查数组中的任何值是否都有“false”。但这似乎有点笨拙。

我觉得必须有一个关于如何做到这一点的“最佳实践”?

更新:每个字段运行->validate()方法非常重要。甚至在第一个“假”之后出现的字段。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$validate_form = true;

//Loop through groups
foreach ($this->field_groups as $field_group) {


    //Loop through fields
    foreach ($field_group->fields as $field) {


        $validated = $field->validate($data[$field->name]);
        //if any of these returned false, set $validate_form to false
        if (!$validated)
        {
            $validate_form = false;
            break;
        }
    }

}

return $val_form;

“休息”;将要停止循环。