如何判断一个值是 bool 类型?比如里面这段代码、、、

2018-09-11 17:39:16 +08:00
 s609926202
function validate_boolean( $value ) {
	if ( ! is_bool( $value ) && ! ( ( ctype_digit( $value ) || is_numeric( $value ) ) && in_array( $value, [ 0, 1 ], true ) ) ) {
		return false;
	}

	return true;
}

嗯,怎么修改一下这段代码,当我传递的值是 'true'、'false' 时,也可以返回 true

1300 次点击
所在节点    问与答
2 条回复
manhere
2018-09-11 17:45:42 +08:00
in_array 判断 0,1 后面 加上 'true','false' 即 0,1, 'true','false'
s609926202
2018-09-11 17:52:58 +08:00
@manhere

怕是不行吧,得另开条件,这样:
function validate_boolean( $value ) {
if ( ! is_bool( $value ) && ! ( ( ctype_digit( $value ) || is_numeric( $value ) ) && in_array( $value, [ 0, 1, '0', '1' ], true ) ) && ! in_array( $value, [ 'true', 'false' ], true ) ) {
return false;
}

return true;
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX