• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • is_bool()

    (PHP 4, PHP 5, PHP 7)

    检测变量是否是布尔型

    描述

    is_bool(mixed $var): bool

    如果$var是boolean则返回TRUE

    Example #1is_bool()示例

    <?php
    $a = false;
    $b = 0;
    // 因为 $a 是布尔型,所以结果为真
    if (is_bool($a)) {
        print "Yes, this is a boolean";
    }
    // 因为 $b 不是布尔型,所以结果为非真
    if (is_bool($b)) {
        print "Yes, this is a boolean";
    }
    ?>
    

    参见is_array()、is_float()、is_int()、is_integer()、is_string()和is_object()。

    It should be stated that this function returns true if the _type_ of it's argument is boolean. It does not convert or coerce the value to a boolean type, not sure why so many comments focus on how to do this.
    However, if you arrived here looking for a solution to convert a value to a boolean type, use this:
    to_bool($x) { return (bool)$x; }
    The function Michael Smith published doesn't do the work as it should.
    To check if a variable is boolean is one thing, to evaluate if the value of a variable represents a boolean condition (true or false) is another.
    Here a simple function that checks the status of the received variable in regards to boolean equivalencies (case insensitive).
    <?php
    /** 
     * Check "Booleanic" Conditions :)
     *
     * @param [mixed] $variable Can be anything (string, bol, integer, etc.)
     * @return [boolean]      Returns TRUE for "1", "true", "on" and "yes"
     *               Returns FALSE for "0", "false", "off" and "no"
     *               Returns NULL otherwise.
     */
    function is_enabled($variable)
    {
      if (!isset($variable)) return null;
      return filter_var($variable, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
    }
    ?>
    Of course, it is a simplistic approach, but for the majority of cases it will do the job right.
    And, just to put thing in the right perspective, here's a real function that does what Phill disclosed:
    <?php
    /** 
     * Convert $variable to boolean (adapted from Phill answer)
     *
     * @param [mixed] $variable Can be anything
     * @return [boolean]      Returns the booelan equivalent to $variable based on Zend Enegine interpretation
     */
    function to_bool($variable) 
    { 
      return (bool)$variable;
    }
    ?>
    I hope it helps someone. Happy coding.
    The function in the last comment also converts the string 'false' to a true boolean. Here's a function that does what I think was intended:
    <?php
    function toBool($var) {
     if (!is_string($var)) return (bool) $var;
     switch (strtolower($var)) {
      case '1':
      case 'true':
      case 'on':
      case 'yes':
      case 'y':
       return true;
      default:
       return false;
     }
    }

    上篇:is_array()

    下篇:is_callable()