Aller au contenu principal

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 : $myName ou $my_name.
  • Nom explicite : $itemCount plutôt que $n.

Types de base (scalaires)

TypeExempleDescription
string"hello", 'world'Chaîne de caractères
int42, -7Entier
float3.14, -0.5Nombre décimal
booltrue, falseBoolé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

  1. Nommer clairement variables et fonctions ($userCount, calculateVAT()).
  2. Utiliser === / !== pour les comparaisons.
  3. Typer les paramètres et retours des fonctions (PHP 7+).
  4. Une seule responsabilité par fonction quand c’est possible.
  5. Éviter les boucles infinies : s’assurer que la condition de while/for peut 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.