diff --git a/src/Valitron/Validator.php b/src/Valitron/Validator.php index 2cfac28..7322357 100644 --- a/src/Valitron/Validator.php +++ b/src/Valitron/Validator.php @@ -322,7 +322,9 @@ class Validator */ protected function validateMin($field, $value, $params) { - if (function_exists('bccomp')) { + if (!is_numeric($value)) { + return false; + } elseif (function_exists('bccomp')) { return !(bccomp($params[0], $value, 14) == 1); } else { return $params[0] <= $value; @@ -340,7 +342,9 @@ class Validator */ protected function validateMax($field, $value, $params) { - if (function_exists('bccomp')) { + if (!is_numeric($value)) { + return false; + } elseif (function_exists('bccomp')) { return !(bccomp($value, $params[0], 14) == 1); } else { return $params[0] >= $value; diff --git a/tests/Valitron/ValidateTest.php b/tests/Valitron/ValidateTest.php index 042f740..9834d2e 100644 --- a/tests/Valitron/ValidateTest.php +++ b/tests/Valitron/ValidateTest.php @@ -222,6 +222,14 @@ class ValidateTest extends BaseTestCase $v = new Validator(array('num' => 5)); $v->rule('min', 'num', 6); $this->assertFalse($v->validate()); + + $v = new Validator(array('test' => array())); + $v->rule('min', 'test', 1); + $this->assertFalse($v->validate()); + + $v = new Validator(array('test' => new stdClass)); + $v->rule('min', 'test', 1); + $this->assertFalse($v->validate()); } public function testMinInvalidFloat() @@ -262,6 +270,14 @@ class ValidateTest extends BaseTestCase $v = new Validator(array('num' => 5)); $v->rule('max', 'num', 4); $this->assertFalse($v->validate()); + + $v = new Validator(array('test' => array())); + $v->rule('min', 'test', 1); + $this->assertFalse($v->validate()); + + $v = new Validator(array('test' => new stdClass)); + $v->rule('min', 'test', 1); + $this->assertFalse($v->validate()); } public function testMaxInvalidFloat()