code: public static function boolValue($value, $defaultValue = null)
      {
          if (is_bool($value)) {
              return $value;
          }
          if (is_string($value)) {
              return self::stringToBool($value, $defaultValue);
          }
          if (is_numeric($value)) {
              return (bool) $value;
          }
          
          return self::handleBoolValue($value, $defaultValue);
      }
docs: 指定された値を bool 型に変換します.
  この関数は "Yes", "No", "True", "False", "OK", "NG" などの文字列を
  bool に変換する用途を想定したものです.
  
  引数が bool 型の場合は引数をそのまま返します.
  
  引数が文字列型の場合,
  先頭の 1 バイトが T, Y, O のいずれかの場合は TRUE,
  先頭の 1 バイトが F, N のいずれかの場合は FALSE,
  それ以外は文字列を bool にキャストした結果を返します.
  (大文字・小文字は区別しません)
  
  引数が数値型の場合, bool にキャストした結果を返します.
  すなわち 0 以外の値は TRUE, 0 の場合は FALSE を返します.
  
  以上の条件にあてはまらない値の場合,
  $defaultValue が NULL または未指定の場合は第 1 引数を
  bool にキャストした結果を返します.
  $defaultValue が指定されている場合はその bool 値を返します.
  
  @param  mixed $value        変換対象の値
  @param  bool  $defaultValue デフォルトの返り値
  @return bool                変換後の bool 値