🐘 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