codit_sanitize_boolean() - Sanitize Boolean Values and control their format

Drupal Documentation
This function appears in the Codit Module

This is a handy function to use to be able to pass it a variety of values and have the function return either of three flavors of boolean values.

<?php
/**
 * Accepts bool or quasi-bool, returns sanitized value or other un-altered.
 *
 * @param string $quasi_bool
 *   Can be a variety of items (1, true, T, True, TRUE, 0, false, F, False,
 *   FALSE) that resemble true or false.
 *
 * @param string $s_type
 *   Indicates what type of item you want returned (string, boolean, or binary)
 *   string returns 'true'/'false' or passthrough unless $b_return_strict = true
 *   boolean returns true / false or passthrough unless $b_return_strict = true
 *   binary returns 1/0 or passthrough unless $b_return_strict = true
 *
 * @param bool $b_return_strict
 *   If true, any non-quasi boolean will return false. If set to false,
 *   non-quasi boolean will just be passed through and returned.
 *
 * @return string|boolean|binary
 *   Depending on the $s_type setting.
 */
function codit_sanitize_boolean($quasi_bool, $s_type = 'binary', $b_return_strict = FALSE) {
 
// Consult the module to see the current code.
?>

Here is what some test returns look like:

----TEST $test =  '' --------------------------------------------
sanitizeBoolean($test)  --returns-->

sanitizeBoolean($test, 'binary')   --returns-->
sanitizeBoolean($test, 'string')   --returns-->
sanitizeBoolean($test, 'boolean')  --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)   --returns-->
sanitizeBoolean($test, 'string', 0)   --returns-->
sanitizeBoolean($test, 'boolean', 0)  --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)   --returns--> 0
sanitizeBoolean($test, 'string', 1)   --returns--> false
sanitizeBoolean($test, 'boolean', 1)  --returns--> 

----TEST $test = ' '  --------------------------------------------
sanitizeBoolean($test)  --returns-->

sanitizeBoolean($test, 'binary')  --returns--> 
sanitizeBoolean($test, 'string')  --returns--> 
sanitizeBoolean($test, 'boolean') --returns--> 
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 
sanitizeBoolean($test, 'string', 0)  --returns--> 
sanitizeBoolean($test, 'boolean', 0) --returns--> 
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = 'ddd' --------------------------------------------
sanitizeBoolean($test)  --returns--> ddd

sanitizeBoolean($test, 'binary')  --returns--> ddd
sanitizeBoolean($test, 'string')  --returns--> ddd
sanitizeBoolean($test, 'boolean') --returns--> ddd
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> ddd
sanitizeBoolean($test, 'string', 0)  --returns--> ddd
sanitizeBoolean($test, 'boolean', 0) --returns--> ddd
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = '0' --------------------------------------------
sanitizeBoolean($test)  --returns--> 0

sanitizeBoolean($test, 'binary')  --returns--> 0
sanitizeBoolean($test, 'string')  --returns--> false
sanitizeBoolean($test, 'boolean') --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 0
sanitizeBoolean($test, 'string', 0)  --returns--> false
sanitizeBoolean($test, 'boolean', 0) --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = '1' --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 1 --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 0 --------------------------------------------
sanitizeBoolean($test)  --returns--> 0

sanitizeBoolean($test, 'binary')  --returns--> 0
sanitizeBoolean($test, 'string')  --returns--> false
sanitizeBoolean($test, 'boolean') --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 0
sanitizeBoolean($test, 'string', 0)  --returns--> false
sanitizeBoolean($test, 'boolean', 0) --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = true --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 'true' --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = TRUE --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 'TRUE' --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 't' --------------------------------------------
sanitizeBoolean($test)  --returns--> 1

sanitizeBoolean($test, 'binary')  --returns--> 1
sanitizeBoolean($test, 'string')  --returns--> true
sanitizeBoolean($test, 'boolean') --returns--> 1
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 1
sanitizeBoolean($test, 'string', 0)  --returns--> true
sanitizeBoolean($test, 'boolean', 0) --returns--> 1
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 1
sanitizeBoolean($test, 'string', 1)  --returns--> true
sanitizeBoolean($test, 'boolean', 1) --returns--> 1

----TEST $test = 'f' --------------------------------------------
sanitizeBoolean($test)  --returns--> 0

sanitizeBoolean($test, 'binary')  --returns--> 0
sanitizeBoolean($test, 'string')  --returns--> false
sanitizeBoolean($test, 'boolean') --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 0
sanitizeBoolean($test, 'string', 0)  --returns--> false
sanitizeBoolean($test, 'boolean', 0) --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = false  --------------------------------------------
sanitizeBoolean($test)  --returns--> 0

sanitizeBoolean($test, 'binary')  --returns--> 0
sanitizeBoolean($test, 'string')  --returns--> false
sanitizeBoolean($test, 'boolean') --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 0
sanitizeBoolean($test, 'string', 0)  --returns--> false
sanitizeBoolean($test, 'boolean', 0) --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = 'false' --------------------------------------------
sanitizeBoolean($test)  --returns--> 0

sanitizeBoolean($test, 'binary')  --returns--> 0
sanitizeBoolean($test, 'string')  --returns--> false
sanitizeBoolean($test, 'boolean') --returns-->
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 0
sanitizeBoolean($test, 'string', 0)  --returns--> false
sanitizeBoolean($test, 'boolean', 0) --returns-->
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = 24 --------------------------------------------
sanitizeBoolean($test)  --returns--> 24

sanitizeBoolean($test, 'binary')  --returns--> 24
sanitizeBoolean($test, 'string')  --returns--> 24
sanitizeBoolean($test, 'boolean') --returns--> 24
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 24
sanitizeBoolean($test, 'string', 0)  --returns--> 24
sanitizeBoolean($test, 'boolean', 0) --returns--> 24
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns--> 

----TEST $test = '25'  --------------------------------------------
sanitizeBoolean($test)  --returns--> 25

sanitizeBoolean($test, 'binary')  --returns--> 25
sanitizeBoolean($test, 'string')  --returns--> 25
sanitizeBoolean($test, 'boolean') --returns--> 25
---------NOT strict------------------
sanitizeBoolean($test, 'binary', 0)  --returns--> 25
sanitizeBoolean($test, 'string', 0)  --returns--> 25
sanitizeBoolean($test, 'boolean', 0) --returns--> 25
---------strict------------------
sanitizeBoolean($test, 'binary', 1)  --returns--> 0
sanitizeBoolean($test, 'string', 1)  --returns--> false
sanitizeBoolean($test, 'boolean', 1) --returns-->

modules: