Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Variable Handling Functions : is_bool

is_bool

Finds out whether a variable is a boolean (PHP 4, PHP 5)
bool is_bool ( mixed var )

Example 2589. is_bool() examples

<?php
$a
= false;
$b = 0;

// Since $a is a boolean, this is true
if (is_bool($a)) {
   echo
"Yes, this is a boolean";
}

// Since $b is not a boolean, this is not true
if (is_bool($b)) {
   echo
"Yes, this is a boolean";
}
?>

Code Examples / Notes » is_bool

21-apr-2006 12:12

Small caveat to rh's post: back in PHP 3, "0" would be considered non-empty (i.e., empty would return false), even though (bool) on "0" would also evaluate to false; thus, they would not be complete opposites for someone using PHP 3.

rh

punkpuke is wrong here; what he means to say is that empty($x) is the opposite of (bool)$x.  is_bool($x) returns true where $x === false.

emanueledelgrande

I think there's a hole in the PHP typecasting methods:
you have the (int) function, the (float) function and the (string) function, but no function to force a string variable into the boolean type.
It's obvious that forcing unconditionally the type of variables into arrays and objects is inappropriate, but boolean type is the most basic one for each programming language, that's why I guessed that a (bool) function already existed.
Moreover, with the increasing trend of RSS data streaming, the parsing of an XML string into an object often requires to typecast as boolean values the content of XML tags, normally returned as string by the object method get_content().
I wrote the following function, which also uses a "native PHP style" error message:
<?php
// strings tyecasting as boolean values:
function bool($var) {
switch (strtolower($var)) {
case ("true"):
return true;
break;
case ("false"):
return false;
break;
default:
die("<br />\n<b>Warning:</b> Invalid argument supplied for ".__FUNCTION__." function in <b>".__FILE__."</b> on line <b>".__LINE__."</b>: the argument can contain only 'true' or 'false' values as a string.<br />\n");
}
}
?>
Here it is a small example:
<?php
$xmlResponse = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$xmlResponse .= "<Result>";
$xmlResponse .= "<AuthError>false</AuthError>";
$xmlResponse .= "<TransferStatus>true</TransferStatus>";
$xmlResponse .= "</Result>";
if (! $responseDoc = domxml_open_mem($xmlResponse, DOMXML_LOAD_PARSING, $XmlParsingError)) {
echo "Error while parsing the XML string:<br />".print_r($XmlParsingError, TRUE);
} else {
$ResultNode = $responseDoc->get_elements_by_tagname('Result');

$AuthError = $ResultNode[0]->get_elements_by_tagname('AuthError');
$auth_error = bool($AuthError[0]->get_content());

$TransferStatus = $ResultNode[0]->get_elements_by_tagname('TransferStatus');
$transfer_status = bool($TransferStatus[0]->get_content());

if (! $auth_error) { echo "Auth OK<br />"; } else { echo "Auth error<br />"; }
if ($transfer_status) { echo "Transfer OK<br />"; } else { echo "Transfer error<br />"; }
}
?>
It would be useful this function to be implemented in the core of PHP5.


bb

@ emmanuel del grande
You don't need to break when you return...
function bool($var) {
   switch (strtolower($var)) {
       case ("true"): return true;
       case ("false"): return false;
       default: die("whatever you want it to tell");
   }
}


admin @ ifyouwantblood dotty de

@ emmanuel del grande and kevin at metalaxe dot com
also there is settype: http://us.php.net/settype


kevin

@ emanueledelgrande at email dot it
http://us.php.net/manual/en/language.types.type-juggling.php
(bool) or (boolean) is allowed for type casting a variable. No function like intval, etc but the functionality exists.


Change Language


Follow Navioo On Twitter
debug_zval_dump
doubleval
empty
floatval
get_defined_vars
get_resource_type
gettype
import_request_variables
intval
is_array
is_binary
is_bool
is_buffer
is_callable
is_double
is_float
is_int
is_integer
is_long
is_null
is_numeric
is_object
is_real
is_resource
is_scalar
is_string
is_unicode
isset
print_r
serialize
settype
strval
unserialize
unset
var_dump
var_export
eXTReMe Tracker