Czy mógłby mi ktoś wyjaśnić na jakiej zasadzie działa operator "^=" ? Próbuje to zrozumieć i jakoś mi się nie udaje

I czy ten operator we wszystkich językach (np. C++) działa w taki sam sposób ?
Pozdrawiam i dzięki z góry za pomoc

EDIT:
i co się dzieje w takiej sytuacji ?
<?php while( pocz<kon ) { str[pocz] ^= str[kon]; str[kon] ^= str[pocz]; str[pocz] ^= str[kon]; pocz++; kon--; } ?>
Gdzie str jest tablicą iteracyjną, pocz wynosi początkowo 0 a kon początkowo wynosi ilość liter w tablicy.
(kod pisany z palca)