2014-04-15 75 views
0

我在PHP中創建一個驗證類。我想驗證一個數組中的兩個項目,出於某種原因它只驗證第一個項目。我這樣稱呼它:Foreach Statement行爲怪異?

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; 
      } 
     } 
    } 
} 

我的問題是我怎麼能驗證一個數組中的兩個項目?

+2

返回將做到這一點,返回,退出循環 – Steve

回答

3

return true移動到最後,以便只有在所有內容都有效時才能運行。

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

謝謝你的工作。將在10分鐘內接受你的答案。 – user1475632