Fiches de révision
Fiches PHP
🖨 Imprimer les fiches
9 fiches, une par leçon, dans l'ordre du cours. Retour au cours PHP
PHP · Leçon 1
Premiers pas en PHP
À retenir
PHP s'exécute sur le serveur ; le navigateur ne reçoit que le résultat (du HTML), jamais le code PHP.
Le code PHP s'écrit entre <?php et ?> ; tout ce qui est en dehors est envoyé tel quel.
echo affiche du texte ; ce texte peut contenir des balises HTML.
Chaque instruction se termine par un point-virgule ;.
Commentaires : // une ligne ou /* plusieurs lignes */.
Mémo
<h1>Mon site</h1>
<?php
// PHP écrit du HTML
echo "<p>Bonjour !</p>";
?>
<p>Du HTML normal.</p> Pièges à éviter
Oublier le ; : l'erreur est souvent signalée sur la ligne suivante .
Oublier de fermer un texte avec son guillemet.
Ouvrir un fichier .php directement dans le navigateur (double-clic) : il faut passer par un serveur (php -S localhost:8000).
Revoir la leçon et ses exercices
PHP · Leçon 2
Les variables
À retenir
Une variable commence par $ et reçoit une valeur avec = : $age = 18;.
Types : texte ("Léa"), entier (18), nombre à virgule (2.50, avec un point), booléen (true / false).
Calculs : + - * / et % (le reste de la division).
Le point . colle des textes ; entre guillemets doubles , les variables sont remplacées par leur valeur.
Entre guillemets simples , rien n'est remplacé : '$age' reste « $age ».
Mémo
<?php
$prenom = "Léa";
$age = 18;
$age = $age + 1; // 19
$reste = 17 % 5; // 2
echo "Je m'appelle " . $prenom . ".";
echo "J'ai $age ans."; Pièges à éviter
Écrire une virgule dans un nombre (2,50) au lieu d'un point.
Utiliser + pour coller des textes : en PHP, c'est le point.
Mettre des guillemets simples et s'étonner que $prenom s'affiche tel quel.
$Prenom et $prenom sont deux variables différentes.
Revoir la leçon et ses exercices
PHP · Leçon 3
Les conditions
À retenir
if (condition) { … } elseif (autre) { … } else { … } : PHP teste dans l'ordre et s'arrête à la première condition vraie.
Comparaisons : === (égal, même type), !== (différent), < > <= >=.
= range une valeur, === compare.
&& = ET (les deux vraies), || = OU (au moins une vraie), ! = NON.
Pour des paliers (notes, tarifs), on commence par le plus haut.
Mémo
<?php
if ($note >= 16) {
echo "Très bien";
} elseif ($note >= 10) {
echo "Validé";
} else {
echo "Raté";
}
if ($age >= 65 || $etudiant) { … }
if ($age >= 16 && $age < 18) { … } Pièges à éviter
Écrire if ($age = 18) : ça range 18 dans $age au lieu de comparer.
Mettre les paliers dans le mauvais ordre (≥ 10 avant ≥ 16) : la première condition vraie gagne.
Oublier les accolades ou les parenthèses.
Revoir la leçon et ses exercices
PHP · Leçon 4
Tableaux et boucles
À retenir
Un tableau range plusieurs valeurs : $t = ["a", "b", "c"];. Les numéros commencent à 0 : $t[0] vaut "a".
count($t) donne le nombre d'éléments ; $t[] = "d"; ajoute à la fin.
Tableau associatif : des clés au lieu des numéros, ["prenom" => "Léa"], lu avec $eleve["prenom"].
foreach ($t as $valeur) parcourt chaque élément ; foreach ($t as $cle => $valeur) donne aussi la clé.
for ($i = 1; $i <= 5; $i++) répète un nombre de fois : départ, condition pour continuer, pas.
Mémo
<?php
$fruits = ["Pomme", "Kiwi"];
$fruits[] = "Banane";
echo count($fruits); // 3
foreach ($fruits as $fruit) {
echo "<li>$fruit</li>";
}
$eleve = ["prenom" => "Léa", "age" => 18];
foreach ($eleve as $cle => $valeur) {
echo "$cle : $valeur";
}
for ($i = 1; $i <= 10; $i++) { … } Pièges à éviter
Croire que le premier élément est $t[1] : c'est $t[0].
Mettre le echo "<ul>" dans la boucle : il serait répété à chaque tour.
Une condition de for qui reste toujours vraie : boucle infinie.
Revoir la leçon et ses exercices
À retenir
Un formulaire : <form method="post">, et chaque champ a un name, qui devient sa clé dans $_POST.
$_POST["nom"] ?? "" lit un champ avec une valeur par défaut s'il n'a pas été envoyé.
Tout arrive en texte : (int) ou (float) pour convertir, trim() pour enlever les espaces.
$_SERVER["REQUEST_METHOD"] === "POST" : le formulaire vient d'être envoyé.
Toujours afficher une donnée du visiteur avec htmlspecialchars() (faille XSS), et toujours vérifier côté serveur.
Mémo
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$prenom = trim($_POST["prenom"] ?? "");
$age = (int) ($_POST["age"] ?? 0);
if ($prenom === "") {
echo "Prénom obligatoire.";
} else {
echo "Bonjour " . htmlspecialchars($prenom);
}
}
?>
<form method="post">
<label for="prenom">Prénom</label>
<input id="prenom" name="prenom">
<button type="submit">Envoyer</button>
</form> Pièges à éviter
Oublier l'attribut name : le champ n'est pas envoyé.
Afficher $_POST["…"] sans htmlspecialchars().
Faire confiance à required : il se contourne en deux secondes, il faut vérifier en PHP.
Comparer un texte reçu à un nombre sans le convertir.
Revoir la leçon et ses exercices
PHP · Leçon 6
Les fonctions
À retenir
Une fonction reçoit des valeurs (arguments) entre parenthèses, fait un travail et renvoie un résultat.
Déclarer : function nom($parametre) { return …; } ; appeler : nom(valeur).
return renvoie le résultat et termine la fonction ; pour l'afficher, on écrit echo nom(…).
Un paramètre peut avoir une valeur par défaut : function prixTTC($prix, $taux = 20).
Les variables d'une fonction n'existent que dedans ; elle ne voit pas les autres : tout passe par les paramètres.
Mémo
<?php
function prixTTC(float $prixHT, float $taux = 20): float
{
return $prixHT * (1 + $taux / 100);
}
echo prixTTC(100); // 120
echo prixTTC(100, 5.5); // 105.5
// fonctions de PHP
strlen("PHP"); // 3
strtoupper("sio"); // SIO
round(3.14159, 2); // 3.14 Pièges à éviter
Faire echo dans la fonction au lieu de return : le résultat ne peut plus être réutilisé.
Écrire du code après return : il ne s'exécute jamais.
Utiliser dans une fonction une variable créée en dehors : elle n'y existe pas.
Revoir la leçon et ses exercices
PHP · Leçon 7
Les classes et les objets
À retenir
Une classe est un plan ; un objet est construit à partir de ce plan avec new.
Les propriétés sont les variables de l'objet, les méthodes ses actions. On y accède avec la flèche : $objet->propriete, $objet->methode().
Dans une méthode, $this désigne l'objet sur lequel on l'a appelée.
Le constructeur __construct() est appelé par new ; le raccourci public string $nom dans ses paramètres crée et remplit la propriété.
private : utilisable seulement dans la classe ; on passe alors par des méthodes publiques (accesseurs getSolde()), qui peuvent vérifier les valeurs.
Mémo
<?php
class Compte
{
private float $solde = 0;
public function __construct(public string $titulaire)
{
}
public function deposer(float $montant): void
{
if ($montant > 0) {
$this->solde += $montant;
}
}
public function getSolde(): float
{
return $this->solde;
}
}
$compte = new Compte("Léa");
$compte->deposer(50);
echo $compte->getSolde(); // 50 Pièges à éviter
Écrire $this->$solde : pas de $ après la flèche.
Oublier $this-> dans une méthode : $solde tout seul est une variable locale, vide.
Écrire __construct avec un seul tiret bas : ce n'est alors pas un constructeur.
Lire une propriété private depuis l'extérieur : « Cannot access private property ».
Revoir la leçon et ses exercices
PHP · Leçon 8
Héritage et fichiers séparés
À retenir
Une classe par fichier, au même nom (Compte.php), inclus avec require_once 'Compte.php';.
require arrête tout si le fichier manque, include continue ; _once évite d'inclure deux fois.
class Livret extends Compte : la classe enfant hérite de tout et peut ajouter ou redéfinir des méthodes.
parent::__construct(…) et parent::methode() appellent la version de la classe parente.
protected = visible dans la classe et ses enfants ; private = seulement dans la classe.
throw new InvalidArgumentException("…") lance une exception ; try { … } catch (InvalidArgumentException $e) { $e->getMessage(); } l'attrape.
Mémo
<?php
require_once 'Compte.php';
class Livret extends Compte
{
public function __construct(string $titulaire, private float $taux)
{
parent::__construct($titulaire);
}
public function decrire(): string
{
return parent::decrire() . " ($this->taux %)";
}
}
try {
$livret->deposer(-5);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
} Pièges à éviter
Inclure la classe enfant avant la classe parente.
Mettre private une propriété dont la classe enfant a besoin : il faut protected.
Oublier parent::__construct() : les propriétés du parent ne sont pas remplies.
Utiliser require au lieu de require_once et déclarer deux fois la même classe.
Revoir la leçon et ses exercices
PHP · Défi final
Le bulletin de notes
À retenir
Les données viennent d'un tableau, une boucle les parcourt, une classe les range et les calcule, et l'affichage passe par htmlspecialchars().
Une classe par fichier, incluse avec require_once.
Des méthodes courtes, chacune avec une seule tâche : ajouterNote(), moyenne(), mention().
Mémo
<?php
require_once 'Eleve.php';
foreach ($resultats as $prenom => $notes) {
$eleve = new Eleve($prenom);
foreach ($notes as $note) {
$eleve->ajouterNote($note);
}
echo htmlspecialchars($eleve->prenom) . " : " . $eleve->moyenne();
} Pièges à éviter
Diviser par count() d'un tableau vide : division par zéro.
Revoir la leçon et ses exercices