V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
s609926202
V2EX  ›  问与答

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

  •  
  •   s609926202 · 2018-09-11 17:39:16 +08:00 · 1337 次点击
    这是一个创建于 2256 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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

    2 条回复    2018-09-11 17:52:58 +08:00
    manhere
        1
    manhere  
       2018-09-11 17:45:42 +08:00
    in_array 判断 0,1 后面 加上 'true','false' 即 0,1, 'true','false'
    s609926202
        2
    s609926202  
    OP
       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;
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1146 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:55 · PVG 06:55 · LAX 14:55 · JFK 17:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.