"php function flags, how?" Answer’s

0

Flags must be powers of 2 in order to bitwise-or together properly.

define("FLAG_A", 0x1);
define("FLAG_B", 0x2);
define("FLAG_C", 0x4);
function test_flags($flags) {
  if ($flags & FLAG_A) echo "A";
  if ($flags & FLAG_B) echo "B";
  if ($flags & FLAG_C) echo "C";
}
test_flags(FLAG_B | FLAG_C); # Now the output will be BC

Using hexadecimal notation for the constant values makes no difference to the behavior of the program, but is one idiomatic way of emphasizing to programmers that the values compose a bit field. Another would be to use shifts: 1<<0, 1<<1, 1<<2, &c.

Wednesday, March 31, 2021
 
eek
answered 11 Months ago
eek
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :