Sanitize.php
1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/**
* LearnDash Sanitization class.
*
* @since 4.8.0
*
* @package LearnDash\Core
*/
namespace LearnDash\Core\Utilities;
use InvalidArgumentException;
/**
* A helper class to sanitize various types of data.
*
* @since 4.8.0
*/
class Sanitize {
/**
* Sanitize array recursively.
*
* @since 4.8.0
*
* @throws InvalidArgumentException Throws an exception when $sanitize_fn argument is invalid.
*
* @param array<mixed> $array Array in key value pair.
* @param string|callable $sanitize_fn Sanitization function name or callable to sanitize the array value.
*
* @return array<mixed>
*/
public static function array( array $array, $sanitize_fn = 'sanitize_text_field' ): array {
if ( ! is_callable( $sanitize_fn ) ) {
throw new InvalidArgumentException( 'Sanitization function or callback is invalid.' );
}
return array_map(
function( $value ) use ( $sanitize_fn ) {
return is_array( $value )
? self::array( $value )
: call_user_func( $sanitize_fn, $value );
},
$array
);
}
}