可能重复:
参考-这个符号在PHP中是什么意思?
我正在努力学习PHP和编程。在我正在学习的书中有这样的内容:$flags=PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE;
$flags用于split((方法。
第一个标志是:如果设置了这个标志,preg_split((将只返回非空片段。第二个是:如果设置了此标志,则会捕获并返回分隔符模式中带括号的表达式。
他为什么不使用&;运算符,但|?
你能解释一下|实际上是干什么的吗?
据我所知,这些是
amp&是逻辑AND,而|是按位运算符。
当两个操作数都求值为true时,a && b
求值为true。由于标志几乎总是大于1的数字,因此此表达式总是求值为true。
接受位掩码的函数如何工作
它们指定常量
注意,这些常数必须具有2:的幂
FLAG_INT1 = 1
FLAG_INT2 = 2
FLAG_INT3 = 4
FLAG_INT4 = 8
您调用组合了一些标志的函数
myFunction(FLAG_INT1 | FLAG_INT3)
这导致位OR运算:
0001
OR 0100
=======
0101
一个(或两个(操作数中的一个设置位(1(也将导致结果中的设置位(1(。
该函数在内部检查每个标志
这需要位AND运算:
0101
AND 0001 // check for FLAG_INT1
========
0001 // true
0101
AND 0010 // check for FLAG_INT2
========
0000 // false
0101
AND 0100 // check for FLAG_INT3
========
0100 // true
逐位AND要求两个操作数在位置X都有一个设置位(1(,以便在位置X的结果中产生一个设置位组(2
维基百科也有一篇关于常见比特运算符的好文章:http://en.wikipedia.org/wiki/Bitwise_operation
amp&是逻辑"与"但|是位