@@ -37,18 +37,30 @@ public function differs(?string $str, string $field, array $data): bool
37
37
38
38
/**
39
39
* Equals the static value provided.
40
+ *
41
+ * @param string|null $str
40
42
*/
41
- public function equals (? string $ str , string $ val ): bool
43
+ public function equals ($ str , string $ val ): bool
42
44
{
45
+ if (! is_string ($ str ) && $ str !== null ) {
46
+ $ str = (string ) $ str ;
47
+ }
48
+
43
49
return $ str === $ val ;
44
50
}
45
51
46
52
/**
47
53
* Returns true if $str is $val characters long.
48
54
* $val = "5" (one) | "5,8,12" (multiple values)
55
+ *
56
+ * @param string|null $str
49
57
*/
50
- public function exact_length (? string $ str , string $ val ): bool
58
+ public function exact_length ($ str , string $ val ): bool
51
59
{
60
+ if (! is_string ($ str ) && $ str !== null ) {
61
+ $ str = (string ) $ str ;
62
+ }
63
+
52
64
$ val = explode (', ' , $ val );
53
65
54
66
foreach ($ val as $ tmp ) {
@@ -62,17 +74,29 @@ public function exact_length(?string $str, string $val): bool
62
74
63
75
/**
64
76
* Greater than
77
+ *
78
+ * @param string|null $str
65
79
*/
66
- public function greater_than (? string $ str , string $ min ): bool
80
+ public function greater_than ($ str , string $ min ): bool
67
81
{
82
+ if (! is_string ($ str ) && $ str !== null ) {
83
+ $ str = (string ) $ str ;
84
+ }
85
+
68
86
return is_numeric ($ str ) && $ str > $ min ;
69
87
}
70
88
71
89
/**
72
90
* Equal to or Greater than
91
+ *
92
+ * @param string|null $str
73
93
*/
74
- public function greater_than_equal_to (? string $ str , string $ min ): bool
94
+ public function greater_than_equal_to ($ str , string $ min ): bool
75
95
{
96
+ if (! is_string ($ str ) && $ str !== null ) {
97
+ $ str = (string ) $ str ;
98
+ }
99
+
76
100
return is_numeric ($ str ) && $ str >= $ min ;
77
101
}
78
102
@@ -84,9 +108,15 @@ public function greater_than_equal_to(?string $str, string $min): bool
84
108
* Example:
85
109
* is_not_unique[table.field,where_field,where_value]
86
110
* is_not_unique[menu.id,active,1]
111
+ *
112
+ * @param string|null $str
87
113
*/
88
- public function is_not_unique (? string $ str , string $ field , array $ data ): bool
114
+ public function is_not_unique ($ str , string $ field , array $ data ): bool
89
115
{
116
+ if (! is_string ($ str ) && $ str !== null ) {
117
+ $ str = (string ) $ str ;
118
+ }
119
+
90
120
// Grab any data for exclusion of a single row.
91
121
[$ field , $ whereField , $ whereValue ] = array_pad (
92
122
explode (', ' , $ field ),
@@ -115,9 +145,15 @@ public function is_not_unique(?string $str, string $field, array $data): bool
115
145
116
146
/**
117
147
* Value should be within an array of values
148
+ *
149
+ * @param string|null $value
118
150
*/
119
- public function in_list (? string $ value , string $ list ): bool
151
+ public function in_list ($ value , string $ list ): bool
120
152
{
153
+ if (! is_string ($ value ) && $ value !== null ) {
154
+ $ value = (string ) $ value ;
155
+ }
156
+
121
157
$ list = array_map ('trim ' , explode (', ' , $ list ));
122
158
123
159
return in_array ($ value , $ list , true );
@@ -166,17 +202,29 @@ public function is_unique($str, string $field, array $data): bool
166
202
167
203
/**
168
204
* Less than
205
+ *
206
+ * @param string|null $str
169
207
*/
170
- public function less_than (? string $ str , string $ max ): bool
208
+ public function less_than ($ str , string $ max ): bool
171
209
{
210
+ if (! is_string ($ str ) && $ str !== null ) {
211
+ $ str = (string ) $ str ;
212
+ }
213
+
172
214
return is_numeric ($ str ) && $ str < $ max ;
173
215
}
174
216
175
217
/**
176
218
* Equal to or Less than
219
+ *
220
+ * @param string|null $str
177
221
*/
178
- public function less_than_equal_to (? string $ str , string $ max ): bool
222
+ public function less_than_equal_to ($ str , string $ max ): bool
179
223
{
224
+ if (! is_string ($ str ) && $ str !== null ) {
225
+ $ str = (string ) $ str ;
226
+ }
227
+
180
228
return is_numeric ($ str ) && $ str <= $ max ;
181
229
}
182
230
@@ -196,33 +244,57 @@ public function matches(?string $str, string $field, array $data): bool
196
244
197
245
/**
198
246
* Returns true if $str is $val or fewer characters in length.
247
+ *
248
+ * @param string|null $str
199
249
*/
200
- public function max_length (? string $ str , string $ val ): bool
250
+ public function max_length ($ str , string $ val ): bool
201
251
{
252
+ if (! is_string ($ str ) && $ str !== null ) {
253
+ $ str = (string ) $ str ;
254
+ }
255
+
202
256
return is_numeric ($ val ) && $ val >= mb_strlen ($ str ?? '' );
203
257
}
204
258
205
259
/**
206
260
* Returns true if $str is at least $val length.
261
+ *
262
+ * @param string|null $str
207
263
*/
208
- public function min_length (? string $ str , string $ val ): bool
264
+ public function min_length ($ str , string $ val ): bool
209
265
{
266
+ if (! is_string ($ str ) && $ str !== null ) {
267
+ $ str = (string ) $ str ;
268
+ }
269
+
210
270
return is_numeric ($ val ) && $ val <= mb_strlen ($ str ?? '' );
211
271
}
212
272
213
273
/**
214
274
* Does not equal the static value provided.
275
+ *
276
+ * @param string|null $str
215
277
*/
216
- public function not_equals (? string $ str , string $ val ): bool
278
+ public function not_equals ($ str , string $ val ): bool
217
279
{
280
+ if (! is_string ($ str ) && $ str !== null ) {
281
+ $ str = (string ) $ str ;
282
+ }
283
+
218
284
return $ str !== $ val ;
219
285
}
220
286
221
287
/**
222
288
* Value should not be within an array of values.
289
+ *
290
+ * @param string|null $value
223
291
*/
224
- public function not_in_list (? string $ value , string $ list ): bool
292
+ public function not_in_list ($ value , string $ list ): bool
225
293
{
294
+ if (! is_string ($ value ) && $ value !== null ) {
295
+ $ value = (string ) $ value ;
296
+ }
297
+
226
298
return ! $ this ->in_list ($ value , $ list );
227
299
}
228
300
0 commit comments