# PHP Affectation combinée (+ = etc)

## Exemple

Les opérateurs d'affectation combinée sont un raccourci pour une opération sur une variable et affectent ensuite cette nouvelle valeur à cette variable.

Arithmétique:

``````\$a = 1;   // basic assignment
\$a += 2; // read as '\$a = \$a + 2'; \$a now is (1 + 2) => 3
\$a -= 1; // \$a now is (3 - 1) => 2
\$a *= 2; // \$a now is (2 * 2) => 4
\$a /= 2; // \$a now is (16 / 2) => 8
\$a %= 5; // \$a now is (8 % 5) => 3 (modulus or remainder)

// array +
\$arrOne = array(1);
\$arrTwo = array(2);
\$arrOne += \$arrTwo;
``````
``````\$a **= 2; // \$a now is (4 ** 2) => 16 (4 raised to the power of 2)
``````

Concaténation combinée et affectation d'une chaîne:

``````\$a = "a";
\$a .= "b"; // \$a => "ab"
``````

Opérateurs d'assignation binaire binaire combinés:

``````\$a = 0b00101010;  // \$a now is 42
\$a &= 0b00001111; // \$a now is (00101010 & 00001111) => 00001010 (bitwise and)
\$a |= 0b00100010; // \$a now is (00001010 | 00100010) => 00101010 (bitwise or)
\$a ^= 0b10000010; // \$a now is (00101010 ^ 10000010) => 10101000 (bitwise xor)
\$a >>= 3;         // \$a now is (10101000 >> 3) => 00010101 (shift right by 3)
\$a <<= 1;         // \$a now is (00010101 << 1) => 00101010 (shift left by 1)
``````