Для правильной системы битовых флагов любая маска корректна. Неиспользуемые биты просто игнорируются.ок, допустим у нас есть флаги дающие корректную битовую маску: a =2, b=4, c=8 как проверить на основании этих флагов корретна ли маска? 6(да - a|b), 5(нет)
/**
* @param int[] $flags ['a' => 1, 'b' => 2, 'c' => 6]
* @param int $flagSum верные суммы: 7(a+c), 3(a+b), 2(b), не верные: 0, 4, 5
*/
function validate(array $flags, int $flagSum): bool
{
$flagSums = [1, 2, 6, ..., 9]; // все возможные суммы флагов которые надо как-то получить
return in_array($flagSum, $flagSums);
}
отличить c от b|c невозможно
/**
* @param int[] $flags ['a' => 1, 'b' => 2, 'c' => 6]
* @param int $flagSum верные суммы: 7(a+c), 3(a+b), 2(b), не верные: 0, 4, 5
*/
function validate(array $flags, int $flagSum): bool
{
$flagSums = [1, 2, 6, ..., 9]; // все возможные суммы флагов которые надо как-то получить
return in_array($flagSum, $flagSums);
}
Если у тебя Mozilla и Windows, то плагины в папке ...:\Users\...\AppData\Roaming\Mozilla\Firefox\Profiles\...\extensions распаковываешь архиватором, вносишь правки, запаковываешь..