value = $flags; } /** add flag * @param $flag XXX * @return VOID */ function addflag($flag) { if (!$flag) return; if (!$this->hasflag($flag)) { if ($this->value) $this->value .= $this->sep; $this->value .= $flag; } } /** return all active flags * @return array */ function as_array() { if ($this->value) { $arr = explode($this->sep, $this->value); } else { $arr = array(); } return $arr; } /** test if a flag is set * @param $flag XXX * @return 1 || 0 */ function hasflag($flag) { $tok = strtok($this->value,$this->sep); while ($tok) { if ($tok==$flag) return 1; $tok = strtok($this->sep); } return 0; } /** remove flag * @param $flag XXX * @return VOID */ function rmflag($flag) { if (!$flag) return; $newvalue = ""; $tok = strtok($this->value,$this->sep); while ($tok) { if ($tok!=$flag) { if ($newvalue) $newvalue .= $this->sep; $newvalue .= $tok; } $tok = strtok($this->sep); } $this->value=$newvalue; } } ?>