为模糊的标题道歉。
传递有限数量的属性(例如读、写、执行……)的最佳方式是什么?我想我可以像这些权限那样做 - 计算分配给属性的一些数字的总和 - 1,2,4,8,16 ......这是最容易做到的吗?我应该使用什么算法来获得加数- 例如,如果我有 17 - 我如何计算这是 16 和 1?
谢谢。
最佳答案
你可以使用 Bitwise Operators .这样你就可以比较整数的实际位,这是它的工作原理:
Bit Pattern
8 4 2 1
1 0 0 0 = 8
0 1 1 1 = 7
0 1 1 0 = 6
0 1 0 1 = 5
0 1 0 0 = 4
0 0 1 1 = 3
0 0 1 0 = 2
0 0 0 1 = 1
0 0 0 0 = 0
所以,
6 & 4 = 4
Means 告诉我 6 和 4 中都存在的位。 比较“0 1 1 0”和“0 1 0 0”,您会发现第二位“4”是两者中唯一填充的位,因此返回 4。
或者
7 & 3 = 3
Means 显示 7 和 3 中都存在的位。 比较“0 1 1 1”和“0 0 1 1”,您会看到第三 (2) 和第四 (1) 位都填充在两者中,因此返回 3 (2 + 1)。
关于php - 使用 unix 权限等属性组合传递变量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741625/