这是异或运算符,按二进制位进行异或运算(XOR)。
其中:
0 ^ 0 = 0;
1 ^ 1 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
举个例子:
echo 101 ^ 7; // 输出 98
为什么呢?下面就来分析一下。
101写成二进制是1100101;
7写成二进制是111,即0000111(将两个数的位数补成一样);
根据前面的表,按位运算:
1 1 0 0 1 0 1
^ 0 0 0 0 1 1 1
---------------------
1 1 0 0 0 1 0
就得到了二进制数1100010,转化为十进制就是98。
希望能解开您的疑惑。
参见:维基百科:逻辑异或:
http://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E5%BC%82%E6%88%96
这是按位与,这个你具体可以搜索一下 PHP 按位与,你就懂了
我记得学PHP时是和运算符一起学的。什么相位与……觉得没有用就没研究