wp_validate_boolean()WP 4.0.0

Превращает значение указанной переменной в логические true или false.

Альтернатива конструкции: filter_var( $var, FILTER_VALIDATE_BOOLEAN ).

Хуков нет.

Возвращает

true|false.

Использование

wp_validate_boolean( $value );
$var(смешанный) (обязательный)
Переменная которую нужно проверить, является ли она логической.

Примеры

0

#1 Демонстрация работы

$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( '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 Убедимся что мы передаем логические данные

Иногда нужно точно знать, что передаются логические данные, например когда мы работает с JSON. Пр. PHP понимает '0', как false, но JSON понимает иначе, и в этих случаях нужно убедиться что предаются именно логические данные. Допустим мы передаем настройки:

$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 Если нужно включить в проверку on|off

wp_validate_boolean() вернет true для значений on или off. Чтобы включить и эту проверку можно использовать такую проверку:

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

Список изменений

С версии 4.0.0 Введена.

Код wp_validate_boolean() WP 6.5.5

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

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

	return (bool) $value;
}