rest_get_best_type_for_value()WP 5.5.0

Gets the best type for a value.

No Hooks.

Return

String. The best matching type, an empty string if no types match.

Usage

rest_get_best_type_for_value( $value, $types );
$value(mixed) (required)
The value to check.
$types(string[]) (required)
The list of possible types.

Changelog

Since 5.5.0 Introduced.

rest_get_best_type_for_value() code WP 6.6.2

function rest_get_best_type_for_value( $value, $types ) {
	static $checks = array(
		'array'   => 'rest_is_array',
		'object'  => 'rest_is_object',
		'integer' => 'rest_is_integer',
		'number'  => 'is_numeric',
		'boolean' => 'rest_is_boolean',
		'string'  => 'is_string',
		'null'    => 'is_null',
	);

	/*
	 * Both arrays and objects allow empty strings to be converted to their types.
	 * But the best answer for this type is a string.
	 */
	if ( '' === $value && in_array( 'string', $types, true ) ) {
		return 'string';
	}

	foreach ( $types as $type ) {
		if ( isset( $checks[ $type ] ) && $checks[ $type ]( $value ) ) {
			return $type;
		}
	}

	return '';
}