Aller au contenu principal

Les opérateurs

Notions théoriques

Un opérateur est un symbole qui permet d'effectuer une opération sur une ou plusieurs valeurs, appelées opérandes. Par exemple, dans 3 + 5, le symbole + est l'opérateur et 3 et 5 sont les opérandes.

PHP propose plusieurs familles d'opérateurs. Dans cette séance, nous allons voir les plus courantes : les opérateurs arithmétiques, d'affectation, de comparaison, logiques, et d'incrémentation/décrémentation.

Les opérateurs arithmétiques

Ces opérateurs servent à effectuer des calculs mathématiques.

OpérateurRôleExempleRésultat
+Addition5 + 27
-Soustraction5 - 23
*Multiplication5 * 210
/Division5 / 22.5
%Modulo (reste de la division entière)5 % 21
**Puissance (exposant)5 ** 225
<?php
$score = 15;
$bonus = 3;
$total = $score + $bonus; // 18
info

Le modulo (%) renvoie le reste d'une division entière. Il est très utile pour tester, par exemple, si un nombre est pair : $nombre % 2 === 0.

attention

En PHP, le symbole + sert uniquement aux additions mathématiques. Pour coller deux chaînes de caractères ensemble (la concaténation), on utilise le symbole . (point), et non +.

Les opérateurs d'affectation

Ces opérateurs permettent d'attribuer une valeur à une variable.

OpérateurRôleExempleÉquivalent
=Affectation simple$x = 5;
+=Ajoute puis affecte$x += 3;$x = $x + 3;
-=Soustrait puis affecte$x -= 3;$x = $x - 3;
*=Multiplie puis affecte$x *= 3;$x = $x * 3;
/=Divise puis affecte$x /= 3;$x = $x / 3;
.=Concatène puis affecte$x .= "!";$x = $x . "!";
<?php
$points = 10;
$points += 5; // $points vaut maintenant 15

$message = "Bonjour";
$message .= " les SIO !"; // $message vaut "Bonjour les SIO !"
astuce

Ces opérateurs "raccourcis" (+=, -=, .=, ...) sont très utilisés dans les boucles pour faire évoluer une variable à chaque tour, comme un score ou un compteur.

Les opérateurs de comparaison

Ces opérateurs permettent de comparer deux valeurs. Le résultat d'une comparaison est toujours un booléen : true ou false.

OpérateurRôleExemple
==Égal (compare uniquement la valeur)5 == "5"true
===Identique (compare la valeur et le type)5 === "5"false
!=Différent (compare uniquement la valeur)5 != 3true
!==Non identique (compare la valeur et le type)5 !== "5"true
<Strictement inférieur3 < 5true
>Strictement supérieur3 > 5false
<=Inférieur ou égal5 <= 5true
>=Supérieur ou égal4 >= 5false
<?php
$noteEleve = 15;
$noteMinimale = 10;

$aReussi = $noteEleve >= $noteMinimale; // true
info

La différence entre == et === repose sur le type des valeurs comparées : == accepte des types différents (et peut convertir une valeur pour comparer), alors que === exige que la valeur et le type soient identiques. Cette notion de type sera détaillée en profondeur dans une prochaine séance dédiée aux types de données.

astuce

En cas de doute, préférez === et !== : ces comparaisons strictes évitent des conversions de type parfois surprenantes.

Les opérateurs logiques

Ces opérateurs permettent de combiner plusieurs conditions (ou expressions booléennes) entre elles.

OpérateurRôleExemple
&& (ou and)ET logique : vrai si les deux conditions sont vraies$age >= 18 && $aBillet
|| (ou or)OU logique : vrai si au moins une condition est vraie$estMembre || $aCodePromo
!NON logique : inverse une valeur booléenne!$estConnecte
<?php
$age = 20;
$aBillet = true;

$peutEntrer = $age >= 18 && $aBillet; // true
remarque

PHP propose deux écritures pour ET et OU : && / || (les plus utilisées) et leurs équivalents en mots and / or. Ces deux écritures ne se comportent pas exactement de la même façon dans certains cas rares (priorité des opérateurs), c'est pourquoi il est recommandé d'utiliser && et || en pratique.

Les opérateurs d'incrémentation et de décrémentation

Ces opérateurs permettent d'ajouter ou de retirer 1 à une variable numérique, en une écriture très courte.

OpérateurRôleExempleÉquivalent
++Incrémente de 1$i++;$i = $i + 1;
--Décrémente de 1$i--;$i = $i - 1;
<?php
$compteur = 0;
$compteur++; // $compteur vaut 1
$compteur++; // $compteur vaut 2
$compteur--; // $compteur vaut 1
astuce

Ces opérateurs sont très fréquemment utilisés pour faire avancer un compteur dans une boucle, par exemple for ($i = 0; $i < 10; $i++) { ... }.

Exemple pratique

<?php
// Comparaison de deux scores de jeu vidéo
$scoreJoueur1 = 120;
$scoreJoueur2 = 95;

// Opérateur arithmétique : calcul de l'écart entre les deux scores
$ecart = $scoreJoueur1 - $scoreJoueur2;

// Opérateur d'affectation raccourci : on ajoute un bonus au joueur 1
$scoreJoueur1 += 10;

// Opérateur de comparaison : qui a le meilleur score ?
$joueur1Gagne = $scoreJoueur1 > $scoreJoueur2;

// Opérateur logique : les deux joueurs ont-ils dépassé 100 points ?
$tousDeuxQualifies = ($scoreJoueur1 > 100) && ($scoreJoueur2 > 100);

// Opérateur d'incrémentation : on compte le nombre de parties jouées
$nombreDeParties = 0;
$nombreDeParties++;

echo "Écart de points : " . $ecart . "\n";
echo "Le joueur 1 gagne : " . ($joueur1Gagne ? "oui" : "non") . "\n";
echo "Les deux joueurs sont qualifiés : " . ($tousDeuxQualifies ? "oui" : "non") . "\n";
echo "Nombre de parties jouées : " . $nombreDeParties . "\n";
info

Vous remarquez ici l'utilisation d'un opérateur ternaire (condition ? valeurSiVrai : valeurSiFaux) pour afficher "oui" ou "non" de façon plus compacte qu'un if/else. Cet opérateur sera détaillé dans une séance dédiée, plus tard dans ce cours.

Test de mémorisation/compréhension


Quel opérateur permet d'effectuer une addition en PHP ?


Que renvoie l'opérateur modulo (%) ?


Quel opérateur permet de coller deux chaînes de caractères en PHP ?


Que fait l'instruction $x += 5 ; si $x valait 10 ?


Quelle est la différence principale entre == et === en PHP ?


Quel opérateur logique renvoie true uniquement si les deux conditions sont vraies ?


Quel opérateur logique renvoie true si au moins une des deux conditions est vraie ?


Que fait l'opérateur ! placé devant une expression booléenne ?


Que fait l'instruction $i++ ; ?


Quel est le résultat de l'expression 7 % 2 en PHP ?


TP pour réfléchir et résoudre des problèmes

Calculatrice de panier d'achats

  • Dans votre répertoire "Documents" créez le répertoire tp_panier_achats.
  • Dans ce répertoire créez le fichier panier.php.

L'objectif de ce TP est de calculer le montant total d'un panier d'achats en utilisant les différents opérateurs vus dans cette séance.

Étape 1 — Calculer le sous-total du panier

Créez deux variables $prixArticle (12) et $quantite (4), puis calculez le sous-total en les multipliant.


Bonne pratique - Nommer clairement ses variables

Préférez des noms de variables explicites ($sousTotal, $prixArticle) plutôt que des noms courts comme $s ou $p. Cela rend le calcul lisible sans avoir besoin de commentaire supplémentaire.

Étape 2 — Appliquer des frais de livraison avec un opérateur raccourci

Ajoutez des frais de livraison de 5 au sous-total, en utilisant un opérateur d'affectation raccourci, et stockez le résultat dans une nouvelle variable $total.


Bonne pratique - Utiliser les opérateurs raccourcis

Écrire $total += 5; plutôt que $total = $total + 5; rend le code plus court et tout aussi lisible, une fois l'habitude prise. C'est une convention très répandue chez les développeurs PHP.

Étape 3 — Vérifier si le client bénéficie de la livraison gratuite

La livraison est offerte si le sous-total est strictement supérieur à 50 et que le client est membre du programme fidélité ($estMembre).


Bonne pratique - Parenthéser les conditions composées

Même si ce n'est pas obligatoire, entourer chaque comparaison de parenthèses (($sousTotal > 50) && $estMembre) améliore la lisibilité lorsque plusieurs opérateurs sont combinés dans une même expression.

Étape 4 — Compter le nombre d'articles différents dans le panier

Ajoutez une variable $nombreArticlesDifferents initialisée à 0, puis incrémentez-la pour chaque article ajouté au panier (dans cet exercice, on ajoute 3 articles différents à la suite).


Bonne pratique - Compteurs explicites

Un compteur incrémenté avec ++ doit toujours être initialisé avant d'être utilisé (ici à 0). Oublier cette initialisation provoque des résultats imprévisibles.

Étape 5 — Afficher le récapitulatif du panier

Terminez en affichant le sous-total, le total (avec frais de livraison), et si la livraison est gratuite.


Bonne pratique - Concaténer proprement les affichages

Pour afficher un mélange de texte et de variables, l'opérateur . (concaténation) est indispensable. Une bonne pratique consiste à toujours ajouter "\n" en fin de ligne affichée, afin que la sortie du terminal reste lisible, avec un retour à la ligne entre chaque message.

Étape 6 — Exécuter le script

php panier.php
📌 Une solution