יותר פשוט עם bitwise opertors
הנה דוגמא:
PHP קוד:
<?php
define ('read', 1);
define ('write', 2);
define ('kick', 4);
define ('ban', 8);
function setflag (&$var, $flag, $set = true)
{
// OR - settings flag
// AND NOT - unsetting flag
$var = $set ? ($var | $flag) : ($var & ~$flag);
}
function isflagset (&$var, $flag)
{
$isflagset = $var & $flag;
}
// init, read and write are on!
$myflags = (read | write);
setflag($myflags, read, false); // unset read.
setflag($myflags, kick, true); //set kick.
isflagset($myflags, ban); // return false.
isflagset($myflags, kick); // return true.
?>