Semaine 1 - Jour 3 : Opérateurs et Expressions

Les Opérateurs en PHP

Les opérateurs permettent d'effectuer des opérations sur des variables et des valeurs. PHP propose plusieurs catégories d'opérateurs : arithmétiques, comparaison, logiques, et concaténation.

Une expression est une combinaison de valeurs, variables et opérateurs qui produit un résultat : $total = $prix * $quantite;

1. Opérateurs Arithmétiques

Pour effectuer des calculs mathématiques :

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

// Addition
echo $a + $b; // 13

// Soustraction
echo $a - $b; // 7

// Multiplication
echo $a * $b; // 30

// Division
echo $a / $b; // 3.33333...

// Modulo (reste de la division)
echo $a % $b; // 1

// Puissance (PHP 5.6+)
echo 2 ** 3; // 8 (2³)
?>
Résultat :
13, 7, 30, 3.3333333333333, 1, 8

2. Opérateurs de Comparaison

Comparer des valeurs (retourne true ou false) :

<?php
$x = 5;
$y = "5";

// Égalité (valeur)
var_dump($x == $y); // true

// Identité (valeur ET type)
var_dump($x === $y); // false

// Différent (valeur)
var_dump($x != $y); // false

// Non identique
var_dump($x !== $y); // true

// Supérieur, inférieur
var_dump(10 > 5); // true
var_dump(10 < 5); // false
var_dump(10 >= 10); // true
var_dump(10 <= 9); // false
?>
Important : Utilisez === (identité) au lieu de == pour éviter les surprises liées à la conversion automatique de types !

3. Opérateurs Logiques

Combiner plusieurs conditions :

<?php
$age = 25;
$permis = true;

// AND (&&) : les deux doivent être vrais
var_dump($age >= 18 && $permis); // true

// OR (||) : au moins un doit être vrai
var_dump($age < 18 || $permis); // true

// NOT (!) : inverse le résultat
var_dump(!$permis); // false

// Combinaison complexe
$majeur = $age >= 18;
$peutConduire = $majeur && $permis;
echo $peutConduire ? "Peut conduire" : "Ne peut pas";
?>
Résultat :
bool(true)
bool(true)
bool(false)
Peut conduire

4. Concaténation de Chaînes

Assembler des chaînes de caractères :

<?php
$prenom = "Alice";
$nom = "Dupont";

// Opérateur . (point)
$nomComplet = $prenom . " " . $nom;
echo $nomComplet; // Alice Dupont

// Opérateur .= (concaténation et assignation)
$message = "Bonjour ";
$message .= $prenom;
$message .= ", bienvenue !";
echo $message; // Bonjour Alice, bienvenue !

// Interpolation dans les guillemets doubles
echo "Bonjour $prenom $nom !";

// Attention avec les guillemets simples
echo 'Bonjour $prenom $nom !'; // Littéral !
?>
Résultat :
Alice Dupont
Bonjour Alice, bienvenue !
Bonjour Alice Dupont !
Bonjour $prenom $nom !

Exemples Pratiques

<?php
// Exemple 1 : Calcul d'un panier
$prixUnitaire = 15.99;
$quantite = 3;
$reduction = 0.10; // 10%

$sousTotal = $prixUnitaire * $quantite;
$montantReduction = $sousTotal * $reduction;
$total = $sousTotal - $montantReduction;

echo "Sous-total : " . $sousTotal . "€";
echo "Réduction : " . $montantReduction . "€";
echo "Total à payer : " . $total . "€";

// Exemple 2 : Vérification d'accès
$age = 20;
$abonnement = true;
$creditsSuffisants = true;

$acces = ($age >= 18) && ($abonnement || $creditsSuffisants);
echo $acces ? "Accès autorisé" : "Accès refusé";

// Exemple 3 : Opérateurs d'incrémentation
$compteur = 5;
$compteur++; // $compteur = $compteur + 1
echo $compteur; // 6

$compteur--; // $compteur = $compteur - 1
echo $compteur; // 5

$compteur += 10; // $compteur = $compteur + 10
echo $compteur; // 15

// Exemple 4 : Opérateur ternaire
$note = 14;
$resultat = ($note >= 10) ? "Admis" : "Recalé";
echo "Résultat : " . $resultat; // Admis
?>
Résultat attendu :
Sous-total : 47.97€
Réduction : 4.797€
Total à payer : 43.173€
Accès autorisé
6
5
15
Résultat : Admis

Erreurs Courantes

// ❌ ERREUR : Confondre = (assignation) et == (comparaison)
if ($age = 18) { // Assigne 18 au lieu de comparer !

// ✅ CORRECT
if ($age == 18) {

// ❌ ERREUR : Utiliser + au lieu de . pour les chaînes
$nom = "Jean" + "Dupont"; // 0 (conversion en nombre !)

// ✅ CORRECT
$nom = "Jean" . "Dupont"; // JeanDupont

// ❌ ERREUR : Oublier les parenthèses dans les conditions complexes
$result = $a > 5 && $b < 10 || $c == 0; // Ambigu !

// ✅ CORRECT : Utilisez des parenthèses
$result = ($a > 5 && $b < 10) || ($c == 0);
Froggiesplaining :


Objectifs de ce cours :
✅ Maîtriser les opérateurs arithmétiques (+, -, *, /, %, **)
✅ Comprendre la différence entre == et === (=== est plus strict !)
✅ Utiliser les opérateurs logiques (&&, ||, !) pour combiner des conditions
✅ Savoir concaténer des chaînes avec . et .=
✅ Utiliser l'opérateur ternaire pour des conditions simples

Points clés à retenir :
= : assignation | == : égalité (valeur) | === : identité (valeur + type)
• Préférez === pour éviter les conversions automatiques inattendues
&& (AND) : toutes les conditions doivent être vraies
|| (OR) : au moins une condition doit être vraie
! (NOT) : inverse le résultat (true devient false)
. (point) : concatène des chaînes de caractères
++ : incrémente de 1 | -- : décrémente de 1
+=, -=, *=, /= : opérateurs combinés (ex: $x += 5 équivaut à $x = $x + 5)
• Ternaire : condition ? valeur_si_vrai : valeur_si_faux

Exercice pratique :
1. Créez un fichier operateurs.php
2. Déclarez : $prix = 50; $quantite = 3; $tauxTVA = 0.20;
3. Calculez le total TTC : $totalTTC = $prix * $quantite * (1 + $tauxTVA);
4. Testez les comparaisons : var_dump(5 == "5"); var_dump(5 === "5");
5. Créez une condition : Si l'âge est >= 18 ET a un permis, afficher "Peut conduire"
6. Utilisez l'opérateur ternaire : $statut = ($age >= 18) ? "Majeur" : "Mineur";

Froggie explain

GitHub - eCrea