Breaking

dimanche 15 février 2026

Cours couvre l'intégralité de PHP depuis les bases jusqu'aux patterns MVC et DAO professionnels, avec exemples complets et résultats d'exécution


  Cours complet PHP · 40 QCM inclus

🐘 Cours complet PHP - De débutant à expert

20 chapitres interactifs + 40 QCM avec correction

🐘 1️⃣

Syntaxe de base

Un script PHP commence par <?php et se termine par ?>. echo affiche du texte.
<?phpecho;
<?php
  echo "Bonjour le monde !";
?>
📤 Résultat : Bonjour le monde !
🐘 2️⃣

Variables et types

Précédées de $. Types : string, int, float, bool, array, null.
$nomstringintvar_dump()
<?php
  $prenom = "Marie";
  $age = 25;
  $estEtudiant = false;
  echo "$prenom a $age ans";
?>
📤 Résultat : Marie a 25 ans
🐘 3️⃣

Constantes

define('NOM', valeur) ou const NOM = valeur.
define()const
<?php
  define("PI", 3.14);
  const SITE = "monSite.com";
  echo PI . " - " . SITE;
?>
📤 Résultat : 3.14 - monSite.com
🐘 4️⃣

Opérateurs

Arithmétiques (+ - * / %), comparaison (== === != < >), logiques (&& || !)
+===&&
<?php
  $a = 10; $b = 3;
  echo $a % $b;        // 1
  echo ($a > 5 && $b < 5); // 1 (true)
?>
📤 Résultat : 1 1
🐘 5️⃣

if / else / switch

<?php
  $note = 14;
  if ($note >= 10) {
      echo "Admis";
  } else {
      echo "Échec";
  }
?>
📤 Résultat : Admis
🐘 6️⃣

Boucles (for, while, foreach)

<?php
  for ($i=1; $i<=3; $i++) {
      echo "$i ";
  }
  $fruits = ["pomme", "banane"];
  foreach ($fruits as $f) { echo $f; }
?>
📤 Résultat : 1 2 3 pomme banane
🐘 7️⃣

Tableaux (array)

Indexé : $tab = [1,2] ; Associatif : $age = ["Alice"=>25];
<?php
  $couleurs = ["rouge", "vert"];
  $infos = ["nom" => "Paul", "age" => 30];
  echo $infos["nom"];
?>
📤 Résultat : Paul
🐘 8️⃣

Fonctions

<?php
  function carre($x) {
      return $x * $x;
  }
  echo carre(4);
?>
📤 Résultat : 16
🐘 9️⃣

Superglobales

$_GET, $_POST, $_REQUEST récupèrent les données des formulaires.
<?php
  if ($_POST["nom"]) {
      echo "Bonjour " . $_POST["nom"];
  }
?>
📤 Exemple : formulaire → affiche Bonjour [nom]
🐘 🔟

Sessions

session_start() permet de stocker des données persistantes via $_SESSION.
<?php
  session_start();
  $_SESSION["user"] = "Alice";
  echo $_SESSION["user"];
?>
📤 Résultat : Alice
🐘 1️⃣1️⃣

Cookies

setcookie(name, value, expire) ; accessible via $_COOKIE.
<?php
  setcookie("langue", "fr", time()+3600);
  echo $_COOKIE["langue"] ?? "non défini";
?>
🐘 1️⃣2️⃣

Fichiers

<?php
  file_put_contents("test.txt", "Hello");
  echo file_get_contents("test.txt");
?>
📤 Résultat : Hello
🐘 1️⃣3️⃣

Exceptions

<?php
  try {
      if (!file_exists("f.txt")) throw new Exception("Fichier manquant");
  } catch (Exception $e) {
      echo $e->getMessage();
  }
?>
📤 Résultat : Fichier manquant
🐘 1️⃣4️⃣

Classe et objet

<?php
  class Personne {
      public $nom;
      function __construct($nom) { $this->nom = $nom; }
      function saluer() { return "Bonjour $this->nom"; }
  }
  $p = new Personne("Luc");
  echo $p->saluer();
?>
📤 Résultat : Bonjour Luc
🐘 1️⃣5️⃣

Héritage

<?php
  class Animal { public function parler() { return "?"; } }
  class Chat extends Animal {
      public function parler() { return "Miaou"; }
  }
  $c = new Chat();
  echo $c->parler();
?>
📤 Résultat : Miaou
🐘 1️⃣6️⃣

Interface

<?php
  interface Paiement { public function payer($montant); }
  class CB implements Paiement {
      public function payer($m) { echo "Carte : $m €"; }
  }
  $cb = new CB(); $cb->payer(50);
?>
📤 Résultat : Carte : 50 €
🐘 1️⃣7️⃣

Namespace

<?php
  namespace MonProjet;
  class Utilisateur {}
  $u = new Utilisateur();
?>
🐘 1️⃣8️⃣

Inclusion de fichiers

include 'fichier.php'; require 'fichier.php';
<?php
  include 'config.php'; // si le fichier existe
  echo "Site: " . SITE;
?>
🐘 1️⃣9️⃣

MySQLi (basique)

<?php
  $conn = new mysqli("localhost", "user", "pass", "db");
  if ($conn->connect_error) die("Connexion échouée");
  $result = $conn->query("SELECT * FROM users");
  while($row = $result->fetch_assoc()) echo $row["nom"];
?>
🐘 2️⃣0️⃣

PDO (sécurisé)

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
  $stmt = $pdo->query("SELECT * FROM users");
  foreach ($stmt as $row) echo $row['email'];
?>
📦 2️⃣1️⃣

Fonctions de base (array)

count(), array_push(), array_pop(), array_merge(), array_keys(), array_values().
countarray_pusharray_poparray_mergearray_keys
<?php
$fruits = ["pomme", "banane"];
array_push($fruits, "orange");
echo count($fruits); // 3
$fusion = array_merge($fruits, ["kiwi"]);
print_r(array_keys($fusion));
?>
📤 Résultat : 3 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
📊 2️⃣2️⃣

Tri (sort / rsort / asort / ksort)

sort() (valeurs, indices réindexés), rsort() (décroissant), asort() (associatif par valeurs), ksort() (par clés).
sortrsortasortksort
<?php
$notes = [15, 8, 12];
sort($notes); // [8,12,15]
$age = ["Alice"=>25, "Bob"=>20];
asort($age); // par âge : Bob, Alice
print_r($age);
?>
📤 Résultat : Array ( [Bob] => 20 [Alice] => 25 )
🔎 2️⃣3️⃣

Recherche (in_array, array_search)

in_array() : true/false ; array_search() retourne la clé.
in_arrayarray_search
<?php
$liste = [10,20,30];
if (in_array(20, $liste)) echo "trouvé";
$key = array_search(30, $liste); // 2
echo $key;
?>
📤 Résultat : trouvé2
⚙️ 2️⃣4️⃣

Filtrage (array_filter, array_map)

array_filter() filtre avec un callback ; array_map() applique une fonction à chaque élément.
array_filterarray_map
<?php
$nombres = [1,2,3,4];
$pairs = array_filter($nombres, fn($n) => $n % 2 == 0);
$carres = array_map(fn($n) => $n * $n, $nombres);
print_r($carres);
?>
📤 Résultat : Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 )
🧵 2️⃣5️⃣

Chaînes : longueur, extraction

strlen(), substr(), strpos(), strrpos().
strlensubstrstrpos
<?php
$ch = "Bonjour PHP";
echo strlen($ch);          // 11
echo substr($ch, 8, 3);    // PHP
echo strpos($ch, "PHP");   // 8
?>
📤 Résultat : 11PHP8
✂️ 2️⃣6️⃣

Modification (str_replace, trim, strtolower)

str_replace(), trim(), strtolower(), strtoupper(), ucfirst().
str_replacetrimstrtolower
<?php
$texte = "  Bonjour Monde  ";
$propre = trim($texte);
echo str_replace("Monde", "PHP", $propre);
echo strtolower($propre);
?>
📤 Résultat : Bonjour PHPbonjour monde
🔀 2️⃣7️⃣

Fractionnement (explode, implode)

explode() (chaîne → tableau), implode() (tableau → chaîne).
explodeimplode
<?php
$liste = "pomme,banane,cerise";
$fruits = explode(",", $liste);
$nouvelle = implode(" - ", $fruits);
echo $nouvelle;
?>
📤 Résultat : pomme - banane - cerise
🔍 2️⃣8️⃣

Regex (preg_match, preg_replace)

Recherche avancée avec motifs.
preg_matchpreg_replace
<?php
$email = "test@example.com";
if (preg_match("/^[a-z]+@[a-z]+\.[a-z]{2,}$/", $email)) {
    echo "Email valide";
}
$texte = "Le 12/03/2024";
$date = preg_replace("/(\d{2})\/(\d{2})\/(\d{4})/", "$3-$2-$1", $texte);
echo $date;
?>
📤 Résultat : Email valide2024-03-12
📅 2️⃣9️⃣

Dates (DateTime, date)

Classe DateTime, fonction date(), strtotime().
DateTimedatestrtotime
<?php
$now = new DateTime();
echo $now->format('Y-m-d H:i');
$future = strtotime('+1 week');
echo date('d/m/Y', $future);
?>
📤 Résultat : (date courante et date dans une semaine)
💵 3️⃣0️⃣

Formatage (number_format, sprintf)

number_format() pour les nombres, sprintf() pour formatage avancé.
number_formatsprintf
<?php
$prix = 1234.567;
echo number_format($prix, 2, ',', ' '); // 1 234,57
$format = sprintf("Total : %.2f €", $prix);
echo $format;
?>
📤 Résultat : 1 234,57 Total : 1234.57 €
📋 40 QCM PHP – Testez vos connaissances
Chaque question a une seule bonne réponse. Cliquez sur Vérifier.
1 Quelle balise ouvre un script PHP ?
2 Quelle fonction affiche du texte en PHP ?
3 En PHP, une variable commence par :
4 Quel opérateur teste à la fois la valeur et le type ?
5 Quelle structure de boucle est idéale pour parcourir un tableau associatif ?
6 Quelle superglobale contient les données d'un formulaire POST ?
7 Comment démarrer une session ?
8 Quelle fonction lit le contenu d'un fichier en une chaîne ?
9 En POO, quel mot-clé fait référence à l'instance courante ?
10 Quel modificateur rend une propriété accessible depuis la classe elle-même seulement ?
11 Quelle fonction compte le nombre d'éléments dans un tableau ?
12 Que retourne `empty(0)` ?
13 Comment définir une constante en PHP ?
14 Quelle superglobale stocke l'IP du client ?
15 Quelle est la sortie de `var_dump(1 == "1")` ?
16 Comment récupérer la valeur d'un cookie nommé "user" ?
17 Quelle fonction PHP permet d'échapper les caractères HTML pour éviter les XSS ?
18 Quelle méthode de PDO permet de préparer une requête (sécurisée) ?
19 Quel mot-clé permet d'importer un namespace ?
20 Que fait la fonction `isset($var)` ?
21 Quelle est la différence entre `include` et `require` ?
22 Quelle fonction décompose une chaîne en tableau selon un séparateur ?
23 Comment écrire un commentaire sur plusieurs lignes en PHP ?
24 Quel est le résultat de `3 ** 2` en PHP ?
25 Quelle fonction vérifie si un fichier existe ?
26 En PHP, `null` est de type :
27 Quelle fonction supprime une variable ?
28 Comment obtenir la longueur d'une chaîne en PHP ?
29 Le mot-clé `final` devant une méthode signifie :
30 Quelle méthode de mysqli exécute une requête SQL ?
31 Quel type de tableau utilise des clés personnalisées (non numériques) ?
32 La fonction `array_merge()` sert à :
33 Comment capturer une exception en PHP ?
34 Le fichier php.ini est :
35 Quelle superglobale contient les variables d'environnement ?
36 La fonction `date('Y')` retourne :
37 Quelle est la sortie de `strpos("Hello", "l")` ?
38 Un trait (trait) en PHP permet :
39 Comment convertir un tableau en JSON ?
40 Quelle est la portée par défaut d'une variable dans une fonction ?

Aucun commentaire:

Enregistrer un commentaire