函数文档

wp_validate_boolean()

💡 云策文档标注

概述

wp_validate_boolean() 是 WordPress 中用于过滤和验证变量为布尔值的函数,可作为 filter_var($value, FILTER_VALIDATE_BOOLEAN) 的替代方案。它处理多种输入类型,确保返回一个布尔值。

关键要点

  • 函数用于验证变量是否为布尔值,返回 bool 类型。
  • 参数 $value 是必需的,可以是混合类型,函数会进行类型转换。
  • 如果 $value 已经是布尔值,直接返回;如果是字符串 'false'(不区分大小写),返回 false;否则返回 (bool) $value。
  • 函数在 WordPress 4.0.0 版本中引入。

代码示例

wp_validate_boolean(true)); //returns bool(true)
wp_validate_boolean(false)); //returns bool(false)
wp_validate_boolean('true')); //returns bool(true)
wp_validate_boolean('false')); //returns bool(false)
wp_validate_boolean('test')); //returns bool(true)
wp_validate_boolean(123)); //returns bool(true)
wp_validate_boolean(0)); //returns bool(false)
wp_validate_boolean(null)); //returns bool(false)
wp_validate_boolean([]); //returns bool(false)
wp_validate_boolean(['test']); //returns bool(true)
wp_validate_boolean([123]); //returns bool(true)
wp_validate_boolean(new StdClass()) //returns bool(true)
wp_validate_boolean()); //returns Error

注意事项

函数对空数组返回 false,非空数组返回 true;对象返回 true;无参数调用会报错。开发者需注意输入类型以避免意外结果。


📄 原文内容

Filters/validates a variable as a boolean.

Description

Alternative to filter_var( $value, FILTER_VALIDATE_BOOLEAN ).

Parameters

$valuemixedrequired
Boolean value to validate.

Return

bool Whether the value is validated.

Source

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

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

	return (bool) $value;
}

Changelog

Version Description
4.0.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    wp_validate_boolean() tests:

    wp_validate_boolean(true)); //returns bool(true)
    wp_validate_boolean(false)); //returns bool(false)
    wp_validate_boolean('true')); //returns bool(true)
    wp_validate_boolean('false')); //returns bool(false)
    wp_validate_boolean('test')); //returns bool(true)
    wp_validate_boolean(123)); //returns bool(true)
    wp_validate_boolean(0)); //returns bool(false)
    wp_validate_boolean(null)); //returns bool(false)
    wp_validate_boolean([]); //returns bool(false)
    wp_validate_boolean(['test']); //returns bool(true)
    wp_validate_boolean([123]); //returns bool(true)
    wp_validate_boolean(new StdClass()) //returns bool(true)
    wp_validate_boolean()); //returns Error