Checking for multiple flags. I just want to know if there is another way to check for multiple flags, different from &&?
class DemoClass
{
public const MY_FLAG1 = 0b1; // 0001 // 1
public const MY_FLAG2 = 0b10; // 0010 // 2
public const MY_FLAG3 = 0b100; // 0100 // 4
public $flags;
public function __construct($flags = DemoClass::MY_FLAG1)
{
$this->flags = $flags;
if ($this->flags & DemoClass::MY_FLAG1 && $this->flags & DemoClass::MY_FLAG2) {
throw new Exception('Flags: MY_FLAG1 and MY_FLAG2 were set');
}
}
}
MY_FLAG1 | MY_FLAG2 | MY_FLAG3 = 0b111 // 0111 // 7
Flags passed to constructor MY_FLAG1 | MY_FLAG2 | MY_FLAG3 (0111).
Check if flags: MY_FLAG1 | MY_FLAG2 are set (0011).
Example :
new DemoClass(DemoClass::MY_FLAG1 | DemoClass::MY_FLAG2 | DemoClass::MY_FLAG3);