@@ -47,7 +47,7 @@ public static function isEmpty($val)
4747 * @param mixed $val 要验证的数据
4848 * @param mixed $default 设置验证失败时返回默认值
4949 * @param int $flags 标志 FILTER_NULL_ON_FAILURE
50- * @return mixed
50+ * @return bool
5151 */
5252 public static function boolean ($ val , $ default = null , $ flags = 0 )
5353 {
@@ -61,7 +61,7 @@ public static function boolean($val, $default = null, $flags = 0)
6161 $ settings ['flags ' ] = $ flags ;
6262 }
6363
64- return filter_var ($ val , FILTER_VALIDATE_BOOLEAN , $ settings );
64+ return ( bool ) filter_var ($ val , FILTER_VALIDATE_BOOLEAN , $ settings );
6565 }
6666
6767 /**
@@ -75,27 +75,51 @@ public static function bool($val, $default = null, $flags = 0)
7575
7676 /**
7777 * @param mixed $val 要验证的变量
78- * @param array $options 可选的选项设置
78+ * @param null|integer|float $min 最小值
79+ * @param null|int|float $max 最大值
7980 * $options = [
8081 * 'default' => 'default value',
8182 * 'decimal' => 2
8283 * ]
8384 * @param int $flags FILTER_FLAG_ALLOW_THOUSAND
8485 * @return mixed
8586 */
86- public static function float ($ val , array $ options = [] , $ flags = 0 )
87+ public static function float ($ val , $ min = null , $ max = null , $ flags = 0 )
8788 {
8889 $ settings = [];
8990
90- if ($ options ) {
91- $ settings ['options ' ] = $ options ;
92- }
93-
9491 if ($ flags !== 0 ) {
9592 $ settings ['flags ' ] = $ flags ;
9693 }
9794
98- return filter_var ($ val , FILTER_VALIDATE_FLOAT , $ settings );
95+ if (filter_var ($ val , FILTER_VALIDATE_FLOAT , $ settings ) === false ) {
96+ return false ;
97+ }
98+
99+ $ minIsNum = is_numeric ($ min );
100+ $ maxIsNum = is_numeric ($ max );
101+
102+ if ($ minIsNum && $ maxIsNum ) {
103+ if ($ max > $ min ) {
104+ $ minV = $ min ;
105+ $ maxV = $ max ;
106+ } else {
107+ $ minV = $ max ;
108+ $ maxV = $ min ;
109+ }
110+
111+ return $ val >= $ minV && $ val <= $ maxV ;
112+ }
113+
114+ if ($ minIsNum ) {
115+ return $ val >= $ min ;
116+ }
117+
118+ if ($ maxIsNum ) {
119+ return $ val <= $ max ;
120+ }
121+
122+ return true ;
99123 }
100124
101125 /**
0 commit comments