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.
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. |
Skip to note 2 content
Daniel Pietrasik
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