Foreach声明表现得很奇怪?

时间:2014-04-15 15:49:58

标签: php arrays foreach

我正在PHP中创建验证类。我想在一个数组中验证两个项目,并且由于某种原因它只验证第一个项目。我称之为:

Form::validate(array('user' => 'required', 'pass' => 'required'), 'login');

,功能是

public static function validate($rules, $form)
{
    foreach ($rules as $rule => $val) {
        if ($val === 'required') {
            if (empty($_POST[$rule])) {
                if (isset($_POST[$form])) {
                    self::$_error = Error::set('All fields are required. ' . $rule);
                    echo self::$_error;
                    return false;
                }
            } else {
                return true;
            }
        }
    }
}

我的问题是如何验证一个数组中的两个项目?

1 个答案:

答案 0 :(得分:3)

return true移到最后,以便只有在所有内容都有效时才会运行。

foreach (...) {
    if (...) {
        return false;
    }
}
return true;