phpのキャレット(^)の意味は | 15g.jp

Pocket

ビット演算の排他的論理和になります。累乗ではありません。

また、論理積を表すandと&&は計算の際の優先度が変わったりします。
他言語から来た方は一度演算子の項目に目を通しておいたほうが良いでしょう。
http://php.net/manual/ja/language.operators.php