bitmask1.php

<?php

define('PERMISSION_DENIED', 0);
define('PERMISSION_READ', 1);
define('PERMISSION_ADD', 2);
define('PERMISSION_UPDATE', 4);
define('PERMISSION_DELETE', 8);

/**
 * Correct the variables stored in array.
 * @param integer $mask Integer of the bit
 * @return array
 */
function bitMask($mask = 0)
{
	if(!is_numeric($mask)) {
		return array();
	}
	$return = array();
	while($mask > 0) {
		for($i = 0, $n = 0; $i <= $mask; $i = 1 * pow(2, $n), $n++) {
			$end = $i;
		}
		$return[] = $end;
		$mask = $mask - $end;
	}
	sort($return);
	return $return;
}


$permission = bitMask(9);
if(in_array(PERMISSION_READ, $permission)) {
	// [...]
} else {
	echo 'Access denied.';
}


?>