@@ -99,9 +99,10 @@ public static function float($val, array $options = [], $flags = 0)
99
99
}
100
100
101
101
/**
102
- * int 验证
102
+ * int 验证 (所有的最小、最大都是包含边界值的)
103
103
* @param mixed $val 要验证的变量
104
- * @param array $options 可选的选项设置
104
+ * @param null|integer $min 最小值
105
+ * @param null|int $max 最大值
105
106
* @param int $flags 标志
106
107
* FILTER_FLAG_ALLOW_OCTAL - 允许八进制数值
107
108
* FILTER_FLAG_ALLOW_HEX - 允许十六进制数值
@@ -113,13 +114,29 @@ public static function float($val, array $options = [], $flags = 0)
113
114
* // 'default' => 3, // value to return if the filter fails
114
115
* ]
115
116
*/
116
- public static function integer ($ val , array $ options = [] , $ flags = 0 )
117
+ public static function integer ($ val , $ min = null , $ max = null , $ flags = 0 )
117
118
{
118
119
if (!is_numeric ($ val )) {
119
120
return false ;
120
121
}
121
122
122
- $ settings = [];
123
+ $ options = $ settings = [];
124
+ $ minIsNum = is_numeric ($ min );
125
+ $ maxIsNum = is_numeric ($ max );
126
+
127
+ if ($ minIsNum && $ maxIsNum ) {
128
+ if ($ max > $ min ) {
129
+ $ options ['min_range ' ] = (int )$ min ;
130
+ $ options ['max_range ' ] = (int )$ max ;
131
+ } else {
132
+ $ options ['min_range ' ] = (int )$ max ;
133
+ $ options ['max_range ' ] = (int )$ min ;
134
+ }
135
+ } elseif ($ minIsNum ) {
136
+ $ options ['min_range ' ] = (int )$ min ;
137
+ } elseif ($ maxIsNum ) {
138
+ $ options ['max_range ' ] = (int )$ max ;
139
+ }
123
140
124
141
if ($ options ) {
125
142
$ settings ['options ' ] = $ options ;
@@ -136,42 +153,60 @@ public static function integer($val, array $options = [], $flags = 0)
136
153
* @see ValidatorList::integer()
137
154
* {@inheritdoc}
138
155
*/
139
- public static function int ($ val , array $ options = [] , $ flags = 0 )
156
+ public static function int ($ val , $ min = null , $ max = null , $ flags = 0 )
140
157
{
141
- return self ::integer ($ val , $ options , $ flags );
158
+ return self ::integer ($ val , $ min , $ max , $ flags );
142
159
}
143
160
144
161
/**
145
162
* check var is a integer and greater than 0
146
- * @param $val
147
- * @param array $options
163
+ * @param mixed $val
164
+ * @param null|integer $min 最小值
165
+ * @param null|int $max 最大值
148
166
* @param int $flags
149
167
* @return bool
150
168
*/
151
- public static function number ($ val , array $ options = [] , $ flags = 0 )
169
+ public static function number ($ val , $ min = null , $ max = null , $ flags = 0 )
152
170
{
153
- return self ::integer ($ val , $ options , $ flags ) && ($ val > 0 );
171
+ if (!is_numeric ($ val )) {
172
+ return false ;
173
+ }
174
+
175
+ if ($ val <= 0 ) {
176
+ return false ;
177
+ }
178
+
179
+ return self ::integer ($ val , $ min , $ max , $ flags );
154
180
}
155
181
156
182
/**
157
183
* @see ValidatorList::number()
158
184
* {@inheritdoc}
159
185
*/
160
- public static function num ($ val , array $ options = [] , $ flags = 0 )
186
+ public static function num ($ val , $ min = null , $ max = null , $ flags = 0 )
161
187
{
162
- return self ::number ($ val , $ options , $ flags );
188
+ return self ::number ($ val , $ min , $ max , $ flags );
163
189
}
164
190
165
191
/**
166
192
* check val is a string
167
193
* @param mixed $val
168
- * @param int $minLength
169
- * @param null|int $maxLength
194
+ * @param int $minLen
195
+ * @param null|int $maxLen
170
196
* @return bool
171
197
*/
172
- public static function string ($ val , $ minLength = 0 , $ maxLength = null )
198
+ public static function string ($ val , $ minLen = 0 , $ maxLen = null )
173
199
{
174
- return !\is_string ($ val ) ? false : self ::length ($ val , $ minLength , $ maxLength );
200
+ if (!\is_string ($ val )) {
201
+ return false ;
202
+ }
203
+
204
+ // only type check.
205
+ if ($ minLen === 0 && $ maxLen === null ) {
206
+ return true ;
207
+ }
208
+
209
+ return self ::integer (Helper::strlen ($ val ), $ minLen , $ maxLen );
175
210
}
176
211
177
212
/**
@@ -236,27 +271,7 @@ public static function size($val, $min = null, $max = null)
236
271
}
237
272
}
238
273
239
- $ options = [];
240
- $ minIsNum = is_numeric ($ min );
241
- $ maxIsNum = is_numeric ($ max );
242
-
243
- if ($ minIsNum && $ maxIsNum ) {
244
- if ($ max > $ min ) {
245
- $ options ['min_range ' ] = (int )$ min ;
246
- $ options ['max_range ' ] = (int )$ max ;
247
- } else {
248
- $ options ['min_range ' ] = (int )$ max ;
249
- $ options ['max_range ' ] = (int )$ min ;
250
- }
251
- } elseif ($ minIsNum ) {
252
- $ options ['min_range ' ] = (int )$ min ;
253
- } elseif ($ maxIsNum ) {
254
- $ options ['max_range ' ] = (int )$ max ;
255
- } else {
256
- return false ;
257
- }
258
-
259
- return self ::integer ($ val , $ options );
274
+ return self ::integer ($ val , $ min , $ max );
260
275
}
261
276
262
277
/**
@@ -302,17 +317,17 @@ public static function max($val, $maxRange)
302
317
/**
303
318
* 字符串/数组长度检查
304
319
* @param string|array $val 字符串/数组
305
- * @param integer $minLength 最小长度
306
- * @param int $maxLength 最大长度
320
+ * @param integer $minLen 最小长度
321
+ * @param int $maxLen 最大长度
307
322
* @return bool
308
323
*/
309
- public static function length ($ val , $ minLength = 0 , $ maxLength = null )
324
+ public static function length ($ val , $ minLen = 0 , $ maxLen = null )
310
325
{
311
326
if (!\is_string ($ val ) && !\is_array ($ val )) {
312
327
return false ;
313
328
}
314
329
315
- return self ::size ($ val , $ minLength , $ maxLength );
330
+ return self ::size ($ val , $ minLen , $ maxLen );
316
331
}
317
332
318
333
/**
0 commit comments