Module 2 – Syntaxe PHP de base
Niveau 1 – PHP fondamentaux
Objectifs
On aborde ici les fondations du PHP : variables, types et constantes, conditions (if, switch, match), boucles (for, while, foreach), et fonctions (paramètres, retour). Indispensable avant de passer aux tableaux et aux formulaires.
Théorie
Variables, types et constantes
Variables
En PHP, une variable commence par $ suivi du nom (lettres, chiffres, underscore). Pas besoin de déclarer le type à l'avance.
<?php
$firstName = "Mary";
$age = 28;
$active = true;
$price = 19.99;
Conventions :
- Nom en camelCase ou snake_case :
$myNameou$my_name. - Nom explicite :
$itemCountplutôt que$n.
Types de base (scalaires)
| Type | Exemple | Description |
|---|---|---|
| string | "hello", 'world' | Chaîne de caractères |
| int | 42, -7 | Entier |
| float | 3.14, -0.5 | Nombre décimal |
| bool | true, false | Booléen |
Vérifier le type : gettype($variable) ou var_dump($variable).
$v = 42;
var_dump($v); // int(42)
echo gettype($v); // integer
Constantes
Une constante ne change pas après définition. On utilise define() ou (PHP 5.3+) const dans une classe.
define('APP_NAME', 'My App');
echo APP_NAME; // My App
const PI = 3.14159; // in a class or at top-level (PHP 5.3+)
Conditions : if, else, elseif
$age = 18;
if ($age >= 18) {
echo "Adult";
} elseif ($age >= 14) {
echo "Teen";
} else {
echo "Child";
}
Opérateurs de comparaison :
== (égalité), === (égalité stricte, même type), !=, !==, <, >, <=, >=.
Recommandation : privilégier === et !== pour éviter les conversions de type surprises.
if ("0" == 0) { /* true */ }
if ("0" === 0) { /* false */ }
switch
Utile quand on compare une même variable à plusieurs valeurs.
$day = 3;
switch ($day) {
case 1:
echo "Monday";
break;
case 2:
echo "Tuesday";
break;
case 3:
echo "Wednesday";
break;
default:
echo "Other day";
}
Important : ne pas oublier break sinon l'exécution « tombe » dans le case suivant (fall-through).
match (PHP 8+)
match est une expression : elle retourne une valeur. Plus lisible que switch quand on veut juste associer valeur → résultat.
$day = 3;
$dayName = match ($day) {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
default => "Other day"
};
echo $dayName; // Wednesday
Pas besoin de break ; une seule branche est exécutée.
Boucles
for
Quand on connaît le nombre d'itérations (ou une condition sur un compteur).
for ($i = 0; $i < 5; $i++) {
echo $i . " ";
}
// Output: 0 1 2 3 4
while
Tant qu'une condition est vraie.
$n = 0;
while ($n < 3) {
echo $n;
$n++;
}
// 012
do-while
Au moins une exécution, puis répétition tant que la condition est vraie.
$n = 0;
do {
echo $n;
$n++;
} while ($n < 3);
foreach
Pour parcourir un tableau (array). Indispensable en PHP.
$fruits = ["apple", "pear", "banana"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
// With key
foreach ($fruits as $index => $fruit) {
echo "$index : $fruit\n";
}
Fonctions
Une fonction regroupe du code réutilisable. Elle peut accepter des paramètres et retourner une valeur.
Définition :
function sayHello(string $name): string {
return "Hello, " . $name . "!";
}
echo sayHello("Mary"); // Hello, Mary!
Default parameters:
function greet(string $name, string $title = "Mr."): string {
return "Hello, " . $title . " " . $name;
}
echo greet("Doe"); // Hello, Mr. Doe
echo greet("Smith", "Mrs."); // Hello, Mrs. Smith
Return value:
If there is no return, the function returns null.
function noReturn() {
echo "ok";
}
var_dump(noReturn()); // ok then null
Conseil : typer les paramètres et le type de retour (comme ci-dessus) pour plus de clarté et moins d'erreurs (surtout avec declare(strict_types=1); en PHP 7+).
Exemples pas à pas
Exemple 1 : Calculatrice simple (opérations de base)
<?php
function add(float $a, float $b): float {
return $a + $b;
}
function subtract(float $a, float $b): float {
return $a - $b;
}
function multiply(float $a, float $b): float {
return $a * $b;
}
function divide(float $a, float $b): ?float {
if ($b === 0.0) {
return null; // division by zero
}
return $a / $b;
}
$x = 10;
$y = 3;
echo add($x, $y); // 13
echo subtract($x, $y); // 7
echo multiply($x, $y); // 30
echo divide($x, $y); // 3.333...
var_dump(divide(5, 0)); // null
Exemple 2 : Parité avec match
$n = 4;
$type = match ($n % 2) {
0 => "even",
1 => "odd",
};
echo "$n is $type";
Exemple 3 : Boucle foreach sur un tableau associatif
$grades = [
"Mary" => 16,
"Paul" => 12,
"Lea" => 18,
];
foreach ($grades as $student => $grade) {
echo "$student : $grade/20\n";
}
Bonnes pratiques
- Nommer clairement variables et fonctions (
$userCount,calculateVAT()). - Utiliser
===/!==pour les comparaisons. - Typer les paramètres et retours des fonctions (PHP 7+).
- Une seule responsabilité par fonction quand c’est possible.
- Éviter les boucles infinies : s’assurer que la condition de
while/forpeut devenir fausse.
Exercices
Exercice 1 – Pair / impair
Écrire une fonction isEven(int $n): bool qui retourne true si $n est pair, false sinon.
Exercice 2 – Maximum de deux nombres
Écrire une fonction max2(float $a, float $b): float qui retourne le plus grand des deux.
Exercice 3 – Boucle for
Afficher les carrés des entiers de 1 à 10 : 1, 4, 9, 16, … 100.
Exercice 4 – Factorielle
Écrire une fonction factorial(int $n): int (pour $n >= 0) qui retourne n!. Ex. : factorial(5) → 120.
Solutions (à ne regarder qu'après avoir essayé)
Ex 1 :
function isEven(int $n): bool {
return $n % 2 === 0;
}
Ex 2 :
function max2(float $a, float $b): float {
return $a >= $b ? $a : $b;
}
Ex 3 :
for ($i = 1; $i <= 10; $i++) {
echo ($i * $i) . " ";
}
Ex 4 :
function factorial(int $n): int {
if ($n <= 1) return 1;
$r = 1;
for ($i = 2; $i <= $n; $i++) {
$r *= $i;
}
return $r;
}
Quiz – Module 2
Q1. Quelle est la différence entre == et === ?
Q2. À quoi sert break dans un switch ?
Q3. Quelle boucle utiliser pour parcourir tous les éléments d’un tableau ?
Q4. Comment déclarer une constante en PHP ?
Q5. Que retourne une fonction qui n’a pas d’instruction return ?
Réponses
R1. == compare en autorisant la conversion de types ; === compare valeur et type (égalité stricte).
R2. break arrête l’exécution du switch pour éviter de « tomber » dans le case suivant (fall-through).
R3. foreach est la boucle adaptée pour parcourir un tableau (avec ou sans la clé).
R4. Avec define('NOM_CONSTANTE', valeur); ou, dans une classe / au top-level, const NOM = valeur;
R5. null.
Mini-projet : Script PHP simple (calculatrice ou formulaire)
Objectif : Réutiliser variables, conditions, boucles et fonctions dans un petit script.
Option A – Calculatrice en ligne de commande
- Demander deux nombres et l’opération (+, -, *, /) via
readline()ou$argv. - Afficher le résultat. Gérer la division par zéro.
Option B – Page avec formulaire
- Un formulaire HTML avec deux champs nombre et une liste (opération).
- Envoi en GET ou POST vers un script PHP qui calcule et affiche le résultat.
- Pas encore de validation avancée (ce sera au module 4).
Critères de réussite :
- Code structuré (fonctions pour chaque opération).
- Affichage clair du résultat.
- Gestion du cas division par zéro (option A).
Suite
Prochaine étape : Module 3 – Tableaux & chaînes de caractères.