这个带有插入符号的PHP语法是什么?它有什么作用?

Nie*_*Bom 6 php syntax operators

我在代码库中遇到了这种语法,我找不到更多信息.它看起来像插入符号运算符(XOR运算符),但由于下面的语句是在满足某个条件时执行的,所以我认为不是这样.

$this->m_flags ^= $flag;
Run Code Online (Sandbox Code Playgroud)

因为我不知道它叫什么我也无法正确搜索它.

更新:由于Cletus的回答:以下几行在功能上是否相同?

$a = $a ^ $b; 
$a ^= $b; // the shorthand for the line above
Run Code Online (Sandbox Code Playgroud)

cle*_*tus 14

它是按位XOR等于.它基本上是一个标志,因为我得到的$flag是2的幂.举个例子:

$a = 5; // binary 0101
$b = 4; // binary 0100
$a ^= $b; // now 1, binary 0001
Run Code Online (Sandbox Code Playgroud)

所以第三位被翻转了.再次:

$a ^= $b; // now 5, binary 0101
Run Code Online (Sandbox Code Playgroud)