Les opérations

L’affectation

  • Opérateur : =
  • Renvoie la valeur affectée
  • Affectations en chaînes possibles
<?php
    $a = 1;
    $a = $b = 1;
    $a = ($b = 1);
  • Par défaut, affectation par copie : valeur à droite du signe = est copiée pour être affectée

    => Variables sont indépendantes

  • Affectation par référence : =&

    => Variables sont liées

Pour effacer une référence, on peut utiliser la fonction unset( $var ) sur la variable. Le lien entre le nom et la valeur sont alors effacés, mais les autres nom utilisant la même valeur ne sont pas affectés.

Cet exemple permet de tester quelques cas de conversions. Demandez-vous ce que peut bien afficher ce script.

<?php

$a = 1;

$a = $b = 1;

$a = ($b = 1);

$a = $b;

$b = 3;

echo " a = " . $a;
echo " b = " . $b;

$a =& $b;

$b = 3;

echo " a = " . $a;
echo " b = " . $b;


?>

Les opérations arithmétiques

  • Opérateurs classiques : +, -, *, /, %
  • Opérateurs post/pre incrémentation/décrémentation : ++, –
  • Opérateurs combinés : +=, -=, *= …

Les opérateurs de post-incrémentation et de pré-incrémentation, ou de post-décrémentation et de pré-décrémentation, permettent d’économiser des lignes. En pré-incrémentation, les opérateurs sont devant la variable. La variable est incrémentée, puis évaluée (++$a). En post-incrémentation, les opérateurs sont derrière la variable. La variable est évaluée, puis incrémentée ($a++). En fait, $a++ équivaut à $a = $a +1 et $a– équivaut à $a = $a – 1.

Cet exemple permet de tester quelques cas de conversions. Demandez-vous ce que peut bien afficher ce script.

<?php

$a = 2;
echo $a . "<br>";

$a = 2 + 3;
echo $a . "<br>";

$a += 3;
echo $a . "<br>";

echo $a % 3 . "<br>";

echo $a++ . "<=>" . $a . "<br>";
echo ++$a . "<=>" . $a . "<br>";

?>

La concaténation

  • Opérateur : .
  • Opérateur combiné : .=

L’opération de concaténation est très souvent utilisée en PHP.

<?php

$a = "hello";
$b = "world";

$c = $a . ' ' . $b;
$c .= "<br>";

echo $c;

?>

Les opérations de comparaison

  • Opérateurs classiques : ==, <, >, <=, >=, !=,
  • Opérateurs de type : ===, !==

L’opérateur = = = permet de tester l’égalité en type et en valeur. $a === $b renvoie TRUE si $a est égal à $b et si les deux variables ont le même type. Inversement, l’opérateur ! = = teste la différence en valeur ou en type. $a !== $b renvoie TRUE si $a a une valeur différente de celle de $b OU si $a n’a pas le même type que $b.

Dans notre exemple, $a == $b donnera TRUE, tandis que $a === $b donnera FALSE.

<?php
$a = "3";
$b = 3;

echo "$a == $b : "  . ($a == $b) . "<br>";
echo "$a === $b : " . intval($a === $b) . "<br>";

?>

Les opérations logiques

  • Opérateurs : !, &&, ||, AND, OR, XOR

Il y a des opérateurs identiques : || est le même que OR && est le même quand AND La seule différence entre ces opérateurs réside dans les priorités d’applications. OR et AND ont une priorité faible, alors que && et || ont une priorité forte.

« ! » est l’opérateur logique « non » (not); « XOR » est l’opérateur logique « ou exclusif » : une seule des opérandes peut être vraie, l’autre pas.

<?php
$a = 3;
$b = 5;
$c = 9;

$comparaison =  ( ($a < $b) && ($a < $c) ); // vrai

$comparaison2 = ( ($a < $b) XOR ($a < $c) ); // faux

echo "($a < $b) && ($a < $c) : "  . intval($comparaison) . "<br>";
echo "($a < $b) xor ($a < $c) : "  . intval($comparaison2) . "<br>";

?>

La priorité des opérations

Exemple de tableau
type
1 new
2 () et []
3 – ++ et !
4 ~ - (int) (float) (string) (array) (object) @
5 instanceof
6 * / et %
7 + - et .
8 << et >>
9 < <= et >= >
10 == != et ===
11 &
12 ^
13 |
14 &&
15 ||
16 ? et :
17 Affectation et opérateurs combinés
18 AND
19 XOR
20 OR