我在代码库中遇到了这种语法,但我找不到更多信息。它看起来像插入符号运算符(XOR运算符),但由于下面的语句是在满足某个条件时执行的,所以我认为不是这样。
$this->m_flags ^= $flag;
因为我不知道它叫什么我也无法正确搜索它。
更新: 因为Cletus的回答: 以下几行在功能上是否相同?
$a = $a ^ $b;
$a ^= $b; // the shorthand for the line above
答案 0 :(得分:11)
这是bitwise XOR equals。它基本上会切换一个标志,因为我得到$flag
是2的幂。举个例子:
$a = 5; // binary 0101
$b = 4; // binary 0100
$a ^= $b; // now 1, binary 0001
所以第三位被翻转了。再次:
$a ^= $b; // now 5, binary 0101
答案 1 :(得分:2)