@@ -37,18 +37,30 @@ public function differs(?string $str, string $field, array $data): bool
3737
3838 /**
3939 * Equals the static value provided.
40+ *
41+ * @param string|null $str
4042 */
41- public function equals (? string $ str , string $ val ): bool
43+ public function equals ($ str , string $ val ): bool
4244 {
45+ if (! is_string ($ str ) && $ str !== null ) {
46+ $ str = (string ) $ str ;
47+ }
48+
4349 return $ str === $ val ;
4450 }
4551
4652 /**
4753 * Returns true if $str is $val characters long.
4854 * $val = "5" (one) | "5,8,12" (multiple values)
55+ *
56+ * @param string|null $str
4957 */
50- public function exact_length (? string $ str , string $ val ): bool
58+ public function exact_length ($ str , string $ val ): bool
5159 {
60+ if (! is_string ($ str ) && $ str !== null ) {
61+ $ str = (string ) $ str ;
62+ }
63+
5264 $ val = explode (', ' , $ val );
5365
5466 foreach ($ val as $ tmp ) {
@@ -62,17 +74,29 @@ public function exact_length(?string $str, string $val): bool
6274
6375 /**
6476 * Greater than
77+ *
78+ * @param string|null $str
6579 */
66- public function greater_than (? string $ str , string $ min ): bool
80+ public function greater_than ($ str , string $ min ): bool
6781 {
82+ if (! is_string ($ str ) && $ str !== null ) {
83+ $ str = (string ) $ str ;
84+ }
85+
6886 return is_numeric ($ str ) && $ str > $ min ;
6987 }
7088
7189 /**
7290 * Equal to or Greater than
91+ *
92+ * @param string|null $str
7393 */
74- public function greater_than_equal_to (? string $ str , string $ min ): bool
94+ public function greater_than_equal_to ($ str , string $ min ): bool
7595 {
96+ if (! is_string ($ str ) && $ str !== null ) {
97+ $ str = (string ) $ str ;
98+ }
99+
76100 return is_numeric ($ str ) && $ str >= $ min ;
77101 }
78102
@@ -84,9 +108,15 @@ public function greater_than_equal_to(?string $str, string $min): bool
84108 * Example:
85109 * is_not_unique[table.field,where_field,where_value]
86110 * is_not_unique[menu.id,active,1]
111+ *
112+ * @param string|null $str
87113 */
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
89115 {
116+ if (! is_string ($ str ) && $ str !== null ) {
117+ $ str = (string ) $ str ;
118+ }
119+
90120 // Grab any data for exclusion of a single row.
91121 [$ field , $ whereField , $ whereValue ] = array_pad (
92122 explode (', ' , $ field ),
@@ -115,9 +145,15 @@ public function is_not_unique(?string $str, string $field, array $data): bool
115145
116146 /**
117147 * Value should be within an array of values
148+ *
149+ * @param string|null $value
118150 */
119- public function in_list (? string $ value , string $ list ): bool
151+ public function in_list ($ value , string $ list ): bool
120152 {
153+ if (! is_string ($ value ) && $ value !== null ) {
154+ $ value = (string ) $ value ;
155+ }
156+
121157 $ list = array_map ('trim ' , explode (', ' , $ list ));
122158
123159 return in_array ($ value , $ list , true );
@@ -166,17 +202,29 @@ public function is_unique($str, string $field, array $data): bool
166202
167203 /**
168204 * Less than
205+ *
206+ * @param string|null $str
169207 */
170- public function less_than (? string $ str , string $ max ): bool
208+ public function less_than ($ str , string $ max ): bool
171209 {
210+ if (! is_string ($ str ) && $ str !== null ) {
211+ $ str = (string ) $ str ;
212+ }
213+
172214 return is_numeric ($ str ) && $ str < $ max ;
173215 }
174216
175217 /**
176218 * Equal to or Less than
219+ *
220+ * @param string|null $str
177221 */
178- public function less_than_equal_to (? string $ str , string $ max ): bool
222+ public function less_than_equal_to ($ str , string $ max ): bool
179223 {
224+ if (! is_string ($ str ) && $ str !== null ) {
225+ $ str = (string ) $ str ;
226+ }
227+
180228 return is_numeric ($ str ) && $ str <= $ max ;
181229 }
182230
@@ -196,33 +244,57 @@ public function matches(?string $str, string $field, array $data): bool
196244
197245 /**
198246 * Returns true if $str is $val or fewer characters in length.
247+ *
248+ * @param string|null $str
199249 */
200- public function max_length (? string $ str , string $ val ): bool
250+ public function max_length ($ str , string $ val ): bool
201251 {
252+ if (! is_string ($ str ) && $ str !== null ) {
253+ $ str = (string ) $ str ;
254+ }
255+
202256 return is_numeric ($ val ) && $ val >= mb_strlen ($ str ?? '' );
203257 }
204258
205259 /**
206260 * Returns true if $str is at least $val length.
261+ *
262+ * @param string|null $str
207263 */
208- public function min_length (? string $ str , string $ val ): bool
264+ public function min_length ($ str , string $ val ): bool
209265 {
266+ if (! is_string ($ str ) && $ str !== null ) {
267+ $ str = (string ) $ str ;
268+ }
269+
210270 return is_numeric ($ val ) && $ val <= mb_strlen ($ str ?? '' );
211271 }
212272
213273 /**
214274 * Does not equal the static value provided.
275+ *
276+ * @param string|null $str
215277 */
216- public function not_equals (? string $ str , string $ val ): bool
278+ public function not_equals ($ str , string $ val ): bool
217279 {
280+ if (! is_string ($ str ) && $ str !== null ) {
281+ $ str = (string ) $ str ;
282+ }
283+
218284 return $ str !== $ val ;
219285 }
220286
221287 /**
222288 * Value should not be within an array of values.
289+ *
290+ * @param string|null $value
223291 */
224- public function not_in_list (? string $ value , string $ list ): bool
292+ public function not_in_list ($ value , string $ list ): bool
225293 {
294+ if (! is_string ($ value ) && $ value !== null ) {
295+ $ value = (string ) $ value ;
296+ }
297+
226298 return ! $ this ->in_list ($ value , $ list );
227299 }
228300
0 commit comments