PHP - Les opérateurs

Décembre 2016

Qu'est-ce qu'un opérateur?


Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire
effectuer des opérations, les évaluer, ...

On distingue plusieurs types d'opérateurs :

  • les opérateurs de calcul
  • les opérateurs d'assignation
  • les opérateurs d'incrémentation
  • les opérateurs de comparaison
  • les opérateurs logiques
  • (les opérateurs bit-à-bit)
  • (les opérateurs de rotation de bit)

Les opérateurs de calcul


Les opérateurs de calcul permettent de modifier mathématiquement la valeur
d'une variable



OpérateurDénominationEffetExempleRésultat
(pour x=7)
+opérateur d'additionAjoute deux valeurs$x+310
-opérateur de soustractionSoustrait deux valeurs$x-34
*opérateur de multiplicationMultiplie deux valeurs$x*321
/plus: opérateur de divisionDivise deux valeurs$x/32.3333333
=opérateur d'affectationAffecte une valeur à une variable$x=3Met la valeur 3 dans la variable $x
%opérateur moduloDonne le reste de la division entière entre 2 nombres$x%31

Les opérateurs d'assignation


Ces opérateurs permettent de simplifier des opérations telles que

ajouter une valeur dans une variable et stocker le résultat dans la variable.
Une telle opération s'écrirait habituellement de la façon suivante
par exemple: $x=$x+2

Avec les opérateurs d'assignation il est possible d'écrire cette opération sous la forme
suivante: $x+=2

Ainsi, si la valeur de x était 7 avant opération, elle sera de 9 après...


Les autres opérateurs du même type sont les suivants :



OpérateurEffet
+=addition deux valeurs et stocke le résultat dans la variable (à gauche)
-=soustrait deux valeurs et stocke le résultat dans la variable
*=multiplie deux valeurs et stocke le résultat dans la variable
/=divise deux valeurs et stocke le résultat dans la variable
%=donne le reste de la division deux valeurs et stocke le résultat dans la variable
>=Effectue un OU logique entre deux valeurs et stocke le résultat dans la variable
^=Effectue un OU exclusif entre deux valeurs et stocke le résultat dans la variable
&=Effectue un Et logique entre deux valeurs et stocke le résultat dans la variable
.=Concatène deux chaînes et stocke le résultat dans la variable

Les opérateurs d'incrémentation


Ce type d'opérateur permet de facilement augmenter ou diminuer d'une unité

une variable. Ces opérateurs sont très utiles pour des structures telles que
des boucles, qui ont besoin d'un compteur (variable qui augmente de un en un).


Un opérateur de type $x++ permet de remplacer des notations lourdes telles que

$x=$x+1 ou bien $x+=1




OpérateurDénominationEffetSyntaxeRésultat (avec x valant 7)
++IncrémentationAugmente d'une unité la variable$x++8
--DécrémentationDiminue d'une unité la variable$x--6

Les opérateurs de comparaison



OpérateurDénominationEffetExempleRésultat
==

A ne pas confondre avec le signe d'affectation (=)!!
opérateur d'égalitéCompare deux valeurs et vérifie leur égalité$x==3Retourne 1 si $x est égal à 3, sinon 0
<opérateur d'infériorité stricteVérifie qu'une variable est strictement inférieure à une valeur $x<3Retourne 1 si $x est inférieur à 3, sinon 0
<=opérateur d'inférioritéVérifie qu'une variable est inférieure ou égale à une valeur $x<=3Retourne 1 si $x est inférieur ou égale à 3, sinon 0
>opérateur de supériorité stricteVérifie qu'une variable est strictement supérieure à une valeur $x>3Retourne 1 si $x est supérieur à 3, sinon 0
>=opérateur de supérioritéVérifie qu'une variable est supérieure ou égale à une valeur $x>=3Retourne 1 si $x est supérieur ou égal à 3, sinon 0
!=opérateur de différenceVérifie qu'une variable est différente d'une valeur $x!=3Retourne 1 si $x est différent de 3, sinon 0

Les opérateurs logiques (booléens)


Ce type d'opérateur permet de vérifier si
plusieurs conditions sont vraies :




| || ou OR
| ((condition1)||(condition2))
OpérateurDénominationEffetSyntaxe
OU logiqueVérifie qu'une des conditions est réalisée
&& ou ANDET logiqueVérifie que toutes les conditions sont réalisées((condition1)&&(condition2))
XOROU exclusifVérifie qu'une et une seule des conditions est réalisée((condition1)XOR(condition2))
!NON logiqueInverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1)(!condition)

(Les opérateurs bit-à-bit)


Si vous ne comprenez pas ces opérateurs cela n'est pas
important, vous n'en aurez probablement pas l'utilité. Pour ceux qui voudraient comprendre,
rendez- vous aux chapitres suivants :




Ce type d'opérateur traite ses opérandes comme des données binaires,
plutôt que des données décimales, hexadécimales ou octales.
Ces opérateurs traitent ces données selon leur représentation binaire
mais retournent des valeurs numériques standard dans leur format d'origine.


Les opérateurs suivants effectuent des opérations bit-à-bit, c'est-à-dire
avec des bits de même poids.




| 9 | 12 (1001 | 1100)
OpérateurDénominationEffetSyntaxeRésultat
&ET bit-à-bitRetourne 1 si les deux bits de même poids sont à 19 & 12 (1001 & 1100)8 (1000)
>OU bit-à-bitRetourne 1 si l'un ou l'autre des deux bits de même poids est à 1 (ou les deux)
13 (1101)
^OU exclusifRetourne 1 si l'un des deux bits de même poids est à 1 (mais pas les deux)9 ^ 12 (1001 ^ 1100)5 (0101)
~Complément (NON)Retourne 1 si le bit est à 0 (et inversement)~9 (~1001)6 (0110)

(Les opérateurs de rotation de bit)


Si vous ne comprenez pas ces opérateurs cela n'est pas
important, vous n'en aurez probablement pas l'utilité. Pour ceux qui voudraient comprendre,
rendez- vous aux chapitres suivants :





Ce type d'opérateur traite ses opérandes comme des données binaires
d'une longueur de 32 bits,
plutôt que des données décimales, hexadécimales ou octales.
Ces opérateurs traitent ces données selon leur représentation binaire

mais retournent des valeurs numériques standards dans leur format d'origine.


Les opérateurs suivants effectuent des rotations sur les bits, c'est-à-dire
qu'il décale chacun des bits d'un nombre de bits vers la gauche ou vers la droite.
La première opérande désigne la donnée sur laquelle on va faire le décalage,
la seconde désigne le nombre de bits duquel elle va être décalée.



OpérateurDénominationEffetSyntaxeRésultat
<<Rotation à gaucheDécale les bits vers la gauche (multiplie par 2 à chaque décalage). Les zéros qui sortent à gauche sont perdus, tandis que des zéros sont insérés à droite6 << 1 (110 << 1)12 (1100)
>>Rotation à droite avec conservation du signeDécale les bits vers la droite (divise par 2 à chaque décalage). Les zéros qui sortent à droite sont perdus, tandis que le bit non-nul de poids plus fort est recopié à gauche6 >> 1 (0110 >> 1)3 (0011)

Autres opérateurs


Les opérateurs ne peuvent pas être classés dans une catégorie spécifique
mais ils ont tout de même chacun leur importance!



OpérateurDénominationEffetSyntaxeRésultat
.ConcaténationJoint deux chaînes bout à bout"Bonjour"."Au revoir""BonjourAu revoir"
$Référencement de variablePermet de définir une variable$MaVariable = 2;
->Propriété d'un objetPermet d'accéder aux données membres d'une classe$MonObjet->Propriete

Les priorités


Lorsque l'on associe plusieurs opérateurs, il faut que l'interprêteur PHP sache dans quel
ordre les traiter, voici donc dans l'ordre décroissant les priorités de tous les opérateurs :




| ||
Priorité des opérateurs
+++++++++++++++()[]
++++++++++++++--++!~-
+++++++++++++*/%
+++++++++++++-
+++++++++++<<=>=>
++++++++++==!=
+++++++++&
++++++++^
+++++++
++++++&&
+++++
++++?:
+++=+=-=*=/=%=<<=>>=>>>=&=^= =
++AND
+XOR

A voir également :

Ce document intitulé «  PHP - Les opérateurs  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.