wp_validate_boolean()WP 4.0.0

Converts the value of the specified variable to boolean true or false.

Alternative construction: filter_var( $var, FILTER_VALIDATE_BOOLEAN ).

No Hooks.

Returns

true|false.

Usage

wp_validate_boolean( $value );
$var(mixed) (required)
The variable to check if it is boolean.

Examples

0

#1 Demonstration of work

$var = wp_validate_boolean( true );           // bool(true)
$var = wp_validate_boolean( 'true' );         // bool(true)
$var = wp_validate_boolean( '11' );           // bool(true)
$var = wp_validate_boolean( 1 );              // bool(true)
$var = wp_validate_boolean( '1' );            // bool(true)
$var = wp_validate_boolean( 'on' );           // bool(true)
$var = wp_validate_boolean( 'off' );          // bool(true)
$var = wp_validate_boolean( 'foo' );          // bool(true)
$var = wp_validate_boolean( new StdClass() ); // bool(true)
$var = wp_validate_boolean( [1] );            // bool(true)

$var = wp_validate_boolean( 'false' ); // bool(false)
$var = wp_validate_boolean( false );   // bool(false)
$var = wp_validate_boolean( 0 );       // bool(false)
$var = wp_validate_boolean( '0' );     // bool(false)
$var = wp_validate_boolean( '' );      // bool(false)
$var = wp_validate_boolean( null );    // bool(false)
$var = wp_validate_boolean( [] );      // bool(false)
0

#2 Let's make sure we transmit logical data

Sometimes you need to know exactly what logical data is passed, for example when we work with JSON. PHP understands '0' as false, but JSON understands it differently, and in these cases we have to make sure that it's the logical data being passed. Let's say we pass settings:

$json_data = array(
	'tracklist'    => wp_validate_boolean( $atts['tracklist'] ),
	'tracknumbers' => wp_validate_boolean( $atts['tracknumbers'] ),
	'images'       => wp_validate_boolean( $atts['images'] ),
	'artists'      => wp_validate_boolean( $atts['artists'] ),
);

echo json_encode( $json_data );
0

#3 Ensure the value is bool

// example 1
$plugin_status = wp_validate_boolean( $plugin_data['status'] ?? 0 );
$plugin_active = wp_validate_boolean( $plugin_data['active'] ?? 0 );

// example 2
$is_some = wp_validate_boolean( $request->get_param( 'fetch_field_data' ) );
0

#4 If you need to include the check for on|off

wp_validate_boolean() will return true for the values on or off. To include this check, you can use the following check:

$show = wp_validate_boolean( $show ) && ( $show !== 'off' );

Changelog

Since 4.0.0 Introduced.

wp_validate_boolean() code WP 6.9

function wp_validate_boolean( $value ) {
	if ( is_bool( $value ) ) {
		return $value;
	}

	if ( is_string( $value ) && 'false' === strtolower( $value ) ) {
		return false;
	}

	return (bool) $value;
}