rateltalk
V2EX  ›  问与答

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

  •  
  •   rateltalk · Sep 11, 2018 · 1734 views
    This topic created in 2871 days ago, the information mentioned may be changed or developed.
    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 replies    2018-09-11 17:52:58 +08:00
    manhere
        1
    manhere  
       Sep 11, 2018
    in_array 判断 0,1 后面 加上 'true','false' 即 0,1, 'true','false'
    rateltalk
        2
    rateltalk  
    OP
       Sep 11, 2018
    @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;
    }
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1040 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    ♥ Do have faith in what you're doing.