1

我试图确定一个值是否代表有效标志的组合。

下面是一些测试代码:

$permissions = [2, 4, 16, 1024];

$test = 8; // single value - ok
$test = 4 | 8 | 2048; // OR - ok  
$test = 4 | 16; // OR - ok
$test = 4 & 8; // AND - ok
$test = 4 & 16; // AND - fails :(

foreach($permissions as $perm){
  if($test & $perm){
    print 'ok!';
    break;
  }  
}

正如您所看到的,当我尝试查看数组是否包含两个特定标志时它失败了。有什么办法可以让我工作吗?

$test = 4 & 16; // should return true because both values are in the array
4

1 回答 1

1

试穿&&_if($test & $perm){

于 2014-01-26T00:48:56.573 回答