Introduction à PHP 🐘

Formation DWWM - Les bases du langage serveur

2025 - 2026

Au programme aujourd'hui

  • ⚙️ Exécution et visualisation de PHP
  • 🔧 Syntaxe PHP (balises, point-virgule)
  • 📦 Variables et types de données
  • ➕ Opérations (arithmétiques, concaténation)
  • 📊 Affichage (echo, print, var_dump)
  • 🔀 Conditions (if/else, switch, match)
  • 🔄 Boucles (while, for, foreach)
  • 📚 Tableaux (indexés et associatifs)
  • 💪 Exercices pratiques !

⚙️ Partie 0

Exécution et visualisation

Comment lancer et voir le résultat de votre code PHP

Méthode 1 : Exécuter dans le terminal 💻

Pour tester rapidement vos exercices

Créez un fichier : test.php

<?php
echo "Hello PHP!\n";
echo "2 + 3 = " . (2 + 3) . "\n";
?>

Exécutez dans le terminal :

php test.php
Résultat affiché :
Hello PHP!
2 + 3 = 5

Mode interactif PHP 🎮

Écrire du PHP directement dans le terminal
php -a

Ensuite, tapez du code PHP ligne par ligne :

php > $nom = "Marie";
php > echo $nom;
Marie
php > $age = 25;
php > echo "J'ai $age ans";
J'ai 25 ans
php > exit
💡 Utilisez exit pour quitter le mode interactif

Méthode 2 : Lancer un serveur PHP 🌐

Pour voir le résultat dans le navigateur

1. Créez un fichier : index.php

<?php
echo "<h1>Bienvenue !</h1>";
echo "<p>PHP fonctionne !</p>";
?>

2. Dans le terminal, dans le dossier du fichier :

php -S localhost:8000

3. Ouvrez votre navigateur :

http://localhost:8000/index.php

Lancer le serveur : détails 🔧

⚠️ Important : Le serveur démarre dans le dossier où vous exécutez la commande !
# 1. Allez dans le dossier de votre projet
cd /chemin/vers/mon-projet

# 2. Vérifiez que vous êtes au bon endroit
ls    # (Linux/Mac) ou dir (Windows)

# 3. Lancez le serveur
php -S localhost:8000

# Le serveur affiche :
[Mon Dec 30 15:30:00 2024] PHP Development Server started
💡 Arrêter le serveur : Ctrl + C dans le terminal

Accéder à vos fichiers PHP

Si vous avez plusieurs fichiers :

mon-projet/
├── index.php
├── exercice1.php
├── exercice2.php
└── test.php

Accès dans le navigateur :

http://localhost:8000/index.php
http://localhost:8000/exercice1.php
http://localhost:8000/exercice2.php
http://localhost:8000/test.php
💡 Si vous avez juste index.php, allez sur http://localhost:8000

Changer de port 🔌

Si le port 8000 est déjà utilisé :
php -S localhost:3000
php -S localhost:5000
php -S localhost:8080

Puis accédez avec :

http://localhost:3000

VSCode : Configuration recommandée 💻

Extensions utiles à installer :
  • 📦 PHP Intelephense : Autocomplétion
  • 🐛 PHP Debug : Débogage
  • ▶️ Code Runner : Exécuter rapidement
💡 Raccourci Code Runner :
• Clic droit → "Run Code"
• Ou : Ctrl + Alt + N
Le résultat s'affiche dans le terminal !

Les 2 façons de voir le résultat 🎯

MéthodeCommandeRésultatUsage
Terminalphp fichier.phpTexte brutExercices, tests
Serveur PHPphp -S localhost:8000HTML dans navigateurSites web

Différence Terminal vs Navigateur

✅ Dans le TERMINAL :
<?php
echo "Ligne 1\n";
echo "Ligne 2\n";
?>

Utilisez \n pour les retours à la ligne

🌐 Dans le NAVIGATEUR :
<?php
echo "Ligne 1<br>";
echo "Ligne 2<br>";
?>

Utilisez <br> ou du HTML

Mon conseil pour démarrer 🚀

Pour vos exercices PHP du support :
  1. 📁 Créez un dossier php-exercices
  2. 📝 Créez vos fichiers exercice1.php, etc.
  3. 💻 Exécutez dans le terminal : php exercice1.php
  4. ✅ Voyez le résultat immédiatement !
💡 Terminal = Plus simple pour apprendre
💡 Serveur = Pour du HTML/CSS avec PHP

🔧 Partie 1

Syntaxe de base

Les règles fondamentales de PHP

Qu'est-ce que PHP ? 🐘

PHP = Hypertext Preprocessor
Langage de programmation côté serveur

À quoi ça sert ?

  • 🗄️ Communiquer avec une base de données
  • 📝 Traiter les formulaires
  • 👤 Gérer les sessions utilisateur
  • 🎨 Générer du HTML dynamiquement
  • 📧 Envoyer des emails

Les balises PHP <?php ?> 📌

Code PHP = entre balises <?php et ?>
<?php
    // Mon code PHP ici
    echo "Hello World!";
?>
💡 Balises ouvrante et fermante
• <?php = Début du code PHP
• ?> = Fin du code PHP

Fichier PHP : .php

<!-- index.php -->
<!DOCTYPE html>
<html>
<head>
    <title>Ma page</title>
</head>
<body>
    <h1>Bienvenue</h1>
    <?php
        echo "<p>Ceci est généré par PHP</p>";
    ?>
</body>
</html>
💡 Les fichiers PHP ont l'extension .php

Le point-virgule ; 🎯

⚠️ CHAQUE instruction se termine par un point-virgule ;
<?php
    echo "Bonjour";        // ✅ Correct
    echo "Au revoir";      // ✅ Correct
    echo "Hello"           // ❌ ERREUR : manque le ;
?>
Le point-virgule indique la fin d'une instruction

Les commentaires 💬

<?php
    // Commentaire sur une seule ligne
    # Autre façon (moins utilisée)
    /*
        Commentaire
        sur plusieurs
        lignes
    */
    echo "Code PHP"; // Commentaire à la fin
?>
💡 Les commentaires ne sont pas exécutés

Sensibilité à la casse ⚠️

<?php
    ECHO "Hello";   // ✅ Fonctionne
    Echo "Hello";   // ✅ Fonctionne
    echo "Hello";   // ✅ Fonctionne (recommandé)

    $nom = "Jean";
    $Nom = "Marie";
    $NOM = "Paul";
    // Ce sont 3 variables différentes !
?>

📦 Partie 2

Les variables

Stocker des informations

Qu'est-ce qu'une variable ? 📦

Variable = Boîte qui stocke une valeur
<?php
    $prenom = "Marie";
    $age = 25;
    $prix = 19.99;
?>
$prenom contient "Marie"
$age contient 25
$prix contient 19.99

Déclaration d'une variable

Syntaxe : $nomVariable = valeur;
<?php
    $nom = "Dupont";           // Texte (string)
    $age = 30;                 // Nombre entier (integer)
    $taille = 1.75;            // Nombre décimal (float)
    $estMajeur = true;         // Booléen (boolean)
?>
💡 Toutes les variables commencent par $

Règles de nommage 📏

✅ Noms valides :
$nom
$prenomUtilisateur
$age_client
$prix_total
$_variable
$nombre2
❌ Noms invalides :
$2nombre       // Ne peut pas commencer par un chiffre
$prenom-client // Pas de tiret
$prix total    // Pas d'espace
$for           // Mot réservé PHP

Conventions de nommage

  • ✅ camelCase : $prenomUtilisateur (recommandé)
  • ✅ snake_case : $prenom_utilisateur
  • ✅ Noms descriptifs : $prixTTC plutôt que $p
  • ❌ Pas de noms trop courts : $x, $a
💡 Un bon nom de variable explique ce qu'elle contient

Modifier une variable

<?php
    $compteur = 0;
    echo $compteur;  // Affiche : 0
    $compteur = 5;
    echo $compteur;  // Affiche : 5
    $compteur = $compteur + 1;
    echo $compteur;  // Affiche : 6
?>
On peut réassigner une nouvelle valeur à tout moment

➕ Partie 3

Les opérations

Calculs et concaténation

Opérations arithmétiques ➕➖✖️➗

<?php
    $a = 10;
    $b = 3;
    $addition = $a + $b;        // 13
    $soustraction = $a - $b;    // 7
    $multiplication = $a * $b;  // 30
    $division = $a / $b;        // 3.333...
    $modulo = $a % $b;          // 1 (reste de la division)
?>

Opérateurs détaillés

OpérateurNomExempleRésultat
+Addition10 + 313
-Soustraction10 - 37
*Multiplication10 * 330
/Division10 / 33.333...
%Modulo10 % 31
**Puissance2 ** 38

Opérateurs d'assignation

<?php
    $x = 10;
    $x += 5;   // $x = $x + 5;  (15)
    $x -= 3;   // $x = $x - 3;  (12)
    $x *= 2;   // $x = $x * 2;  (24)
    $x /= 4;   // $x = $x / 4;  (6)
    $x %= 4;   // $x = $x % 4;  (2)
?>

Incrémentation et décrémentation

<?php
    $compteur = 5;
    $compteur++;   // $compteur = $compteur + 1; (6)
    $compteur--;   // $compteur = $compteur - 1; (5)
    ++$compteur;   // Pré-incrémentation (6)
    --$compteur;   // Pré-décrémentation (5)
?>
💡 ++ ajoute 1, -- retire 1

Concaténation de chaînes 🔗

Concaténer = Coller des textes ensemble
Opérateur : . (point)
<?php
    $prenom = "Marie";
    $nom = "Dupont";
    $nomComplet = $prenom . " " . $nom;
    echo $nomComplet;  // Marie Dupont
    $message = "Bonjour " . $prenom . " !";
    echo $message;     // Bonjour Marie !
?>

Concaténation avec assignation

<?php
    $texte = "Hello";
    $texte .= " World";
    echo $texte;  // Hello World
    $texte .= "!";
    echo $texte;  // Hello World!
?>

📊 Partie 4

Types de données scalaires

Les différents types en PHP

Les 4 types scalaires

Scalaire = Une seule valeur
TypeDescriptionExemple
stringTexte"Hello"
intNombre entier42
floatNombre décimal3.14
boolVrai ou fauxtrue / false

String (chaîne de caractères) 📝

<?php
    $texte1 = "Bonjour tout le monde";
    $texte2 = 'Hello World';
    $prenom = "Marie";
    $message = "Bonjour $prenom";  // Bonjour Marie
    $message2 = 'Bonjour $prenom'; // Bonjour $prenom (littéral)
?>
💡 Utilisez " " pour inclure des variables

Integer, Float, Boolean

<?php
    // Integer
    $age = 25;
    $temperature = -5;

    // Float
    $prix = 19.99;
    $taille = 1.75;

    // Boolean
    $estMajeur = true;
    $estConnecte = false;
    $estEgal = (5 == 5);      // true
    $estPlusGrand = (10 > 5); // true
?>
⚠️ Float : utilisez un point (pas de virgule !)

Le cast (conversion de type) 🔄

Cast = Forcer un type de données
<?php
    $texte = "42";
    $nombre = (int)$texte;       // 42 (integer)

    $entier = 10;
    $decimal = (float)$entier;   // 10.0 (float)

    $age = 25;
    $texte = (string)$age;       // "25" (string)

    $bool = (bool)1;             // true
?>

Conversions automatiques

<?php
    $nombre = "10";  // string
    $resultat = $nombre + 5;  // 15 (converti en int)

    $texte = "20 pommes";
    $total = $texte + 10;  // 30 (extrait 20)

    $age = 25;
    echo "J'ai " . $age . " ans";  // J'ai 25 ans
?>

📺 Partie 5

Affichage

echo, print, var_dump

echo, print, var_dump

<?php
    $nom = "Marie";
    $age = 25;

    echo "Bonjour " . $nom;      // echo : le plus utilisé
    print "Bonjour " . $nom;     // print : retourne 1

    var_dump($nom);   // string(5) "Marie"
    var_dump($age);   // int(25)
    var_dump(true);   // bool(true)
    var_dump(19.99);  // float(19.99)
?>
var_dump affiche le type ET la valeur — utile pour déboguer
⚠️ var_dump est à retirer en production !

🔀 Partie 6

Les conditions

if/else, switch, match

if / else / elseif

<?php
    $note = 14;

    if ($note >= 16) {
        echo "Très bien";
    } elseif ($note >= 14) {
        echo "Bien";
    } elseif ($note >= 12) {
        echo "Assez bien";
    } elseif ($note >= 10) {
        echo "Passable";
    } else {
        echo "Insuffisant";
    }
?>

Opérateurs de comparaison

OpérateurSignificationExemple
==Égal à5 == 5 (true)
!=Différent de5 != 3 (true)
>Supérieur à10 > 5 (true)
<Inférieur à3 < 10 (true)
>=Supérieur ou égal5 >= 5 (true)
<=Inférieur ou égal4 <= 5 (true)
===Identique (type+valeur)5 === "5" (false)
!==Non identique5 !== "5" (true)

== vs === et opérateurs logiques

<?php
    $a = 5; $b = "5";
    if ($a == $b)  { echo "Égaux"; }     // true
    if ($a === $b) { echo "Identiques"; } // false

    $age = 20;
    $estEtudiant = true;

    // AND (&&)
    if ($age >= 18 && $estEtudiant) { echo "Étudiant majeur"; }

    // OR (||)
    if ($age < 18 || $estEtudiant) { echo "Réduction disponible"; }

    // NOT (!)
    if (!$estEtudiant) { echo "Pas étudiant"; }
?>
💡 Préférez === (plus strict)

switch

<?php
    $jour = "lundi";
    switch ($jour) {
        case "lundi":
            echo "Début de semaine";
            break;
        case "vendredi":
            echo "Bientôt le weekend";
            break;
        case "samedi":
        case "dimanche":
            echo "Weekend !";
            break;
        default:
            echo "Jour de semaine";
    }
?>
⚠️ Sans break, le code continue dans les cases suivantes !

match - PHP 8 ✨

<?php
    $note = 14;
    $mention = match (true) {
        $note >= 16 => "Très bien",
        $note >= 14 => "Bien",
        $note >= 12 => "Assez bien",
        $note >= 10 => "Passable",
        default => "Insuffisant"
    };
    echo $mention;  // Bien
?>
Critèreswitchmatch
Comparaison== (loose)=== (strict)
RetourneNonOui
breakObligatoirePas besoin
PHPToutes versions8.0+

🔄 Partie 7

Les boucles

while, do...while, for

while et do...while

<?php
    // WHILE : teste avant
    $compteur = 1;
    while ($compteur <= 5) {
        echo "Tour $compteur<br>";
        $compteur++;
    }

    // DO...WHILE : exécute au moins une fois
    $nombre = 10;
    do {
        echo "Nombre : $nombre<br>";
        $nombre++;
    } while ($nombre <= 5);
    // Affiche quand même : Nombre : 10
?>

for — Boucle avec compteur

<?php
    // for (initialisation; condition; incrémentation)
    for ($i = 1; $i <= 5; $i++) {
        echo "Tour $i<br>";
    }

    // BREAK : sort de la boucle
    for ($i = 1; $i <= 10; $i++) {
        if ($i == 5) break;
        echo $i . " ";  // 1 2 3 4
    }

    // CONTINUE : passe au tour suivant
    for ($i = 1; $i <= 5; $i++) {
        if ($i == 3) continue;
        echo $i . " ";  // 1 2 4 5
    }
?>

📚 Partie 8

Les tableaux

Indexés et associatifs

Tableau indexé 📊

<?php
    $fruits = ["Pomme", "Banane", "Orange"];

    echo $fruits[0];  // Pomme
    echo $fruits[1];  // Banane

    // Ajouter à la fin
    $fruits[] = "Kiwi";

    // Parcourir avec for
    for ($i = 0; $i < count($fruits); $i++) {
        echo $fruits[$i] . "<br>";
    }
?>
💡 count($tableau) retourne le nombre d'éléments

Tableau associatif 🗂️

<?php
    $personne = [
        "prenom" => "Marie",
        "nom"    => "Dupont",
        "age"    => 25,
        "ville"  => "Paris"
    ];

    echo $personne["prenom"];  // Marie
    $personne["ville"] = "Lyon"; // Modifier
    $personne["email"] = "marie@mail.com"; // Ajouter

    foreach ($personne as $cle => $valeur) {
        echo "$cle : $valeur<br>";
    }
?>

foreach et tableaux multidimensionnels

<?php
    // foreach sur tableau simple
    $fruits = ["Pomme", "Banane", "Orange"];
    foreach ($fruits as $fruit) {
        echo $fruit . "<br>";
    }

    // Tableau multidimensionnel
    $etudiants = [
        ["Marie", "Dupont", 18],
        ["Jean",  "Martin", 20]
    ];
    foreach ($etudiants as $etudiant) {
        echo $etudiant[0] . " " . $etudiant[1] . "<br>";
    }
?>

Fonctions utiles pour tableaux

<?php
    $fruits = ["Pomme", "Banane", "Orange"];

    count($fruits);              // 3
    in_array("Pomme", $fruits);  // true
    array_push($fruits, "Kiwi"); // Ajoute à la fin
    array_pop($fruits);          // Retire le dernier
    sort($fruits);               // Tri alphabétique

    $personne = ["nom" => "Dupont"];
    isset($personne["nom"]);     // true
    isset($personne["prenom"]);  // false
?>

💪 Partie 9

Exercices pratiques

À vous de jouer !

Exercice 1 : Variables et opérations

📝 Énoncé :
  1. Créez $prixHT = 100 et $tauxTVA = 20
  2. Calculez le montant de la TVA
  3. Calculez le prix TTC
  4. Affichez : "Prix TTC : 120€"
💡 Solution :
<?php
    $prixHT = 100;
    $tauxTVA = 20;
    $montantTVA = $prixHT * $tauxTVA / 100;
    $prixTTC = $prixHT + $montantTVA;
    echo "Prix TTC : " . $prixTTC . "€";
    // Prix TTC : 120€
?>

Exercice 2 : Conditions + Exercice 3 : Switch

💡 Ex.2 — Voter :
<?php
    $age = 16;
    if ($age >= 18) {
        echo "Vous pouvez voter";
    } else {
        echo "Vous ne pouvez pas encore voter";
    }
?>
💡 Ex.3 — Jours :
<?php
    $jour = "vendredi";
    switch ($jour) {
        case "lundi":   echo "Début de semaine, courage !"; break;
        case "vendredi": echo "Bientôt le weekend !"; break;
        case "samedi":
        case "dimanche": echo "C'est le weekend !"; break;
        default: echo "Bon courage !";
    }
?>

Exercice 4 : Table de multiplication

📝 Affichez la table de 7 (boucle for, de 1 à 10)
💡 Solution :
<?php
    for ($i = 1; $i <= 10; $i++) {
        $resultat = 7 * $i;
        echo "7 x $i = $resultat<br>";
    }
    // 7 x 1 = 7
    // 7 x 2 = 14
    // ...
    // 7 x 10 = 70
?>

Exercice 5 : Tableau + moyenne

💡 Solution :
<?php
    $notes = [15, 12, 18, 14, 16];
    $total = 0;
    echo "Notes :<br>";
    for ($i = 0; $i < count($notes); $i++) {
        echo "Note " . ($i + 1) . " : " . $notes[$i] . "<br>";
        $total += $notes[$i];
    }
    $moyenne = $total / count($notes);
    echo "<br>Moyenne : " . $moyenne;
?>

Exercice 6 : Associatif + Exercice 7 : While

<?php
    // Ex.6 — Tableau associatif
    $produit = ["nom" => "Ordinateur", "prix" => 899, "stock" => 15];
    foreach ($produit as $cle => $valeur) {
        echo "$cle : $valeur<br>";
    }

    // Ex.7 — Compte à rebours
    $compteur = 10;
    while ($compteur > 0) {
        echo $compteur . "<br>";
        $compteur--;
    }
    echo "Décollage !";
?>

Exercice bonus 🌟 : Étudiants avec moyennes

<?php
$etudiants = [
    ["nom" => "Dupont", "prenom" => "Marie",  "notes" => [15, 12, 18]],
    ["nom" => "Martin", "prenom" => "Jean",   "notes" => [14, 16, 13]],
    ["nom" => "Durand", "prenom" => "Sophie", "notes" => [17, 19, 16]]
];

foreach ($etudiants as $etudiant) {
    $total = 0;
    foreach ($etudiant["notes"] as $note) {
        $total += $note;
    }
    $moyenne = $total / count($etudiant["notes"]);
    echo $etudiant["nom"] . " " . $etudiant["prenom"];
    echo " : " . $moyenne . "<br>";
}
// Dupont Marie : 15
// Martin Jean : 14.33...
// Durand Sophie : 17.33...
?>

Récapitulatif 🎯

Ce que vous avez appris :

  • ✅ Syntaxe PHP : <?php ?> et point-virgule
  • ✅ Variables : $nom = valeur
  • ✅ Opérations : +, -, *, /, %, .
  • ✅ Types : string, int, float, bool
  • ✅ Affichage : echo, print, var_dump
  • ✅ Conditions : if/else, switch, match
  • ✅ Boucles : while, do...while, for
  • ✅ Tableaux : indexés et associatifs
  • ✅ foreach : parcourir les tableaux

Prochaines étapes 🚀

  1. 📝 Fonctions : créer du code réutilisable
  2. 📋 Formulaires : $_GET et $_POST
  3. 🗄️ Base de données : MySQL avec PDO
  4. 🍪 Sessions et cookies : gérer les utilisateurs
  5. 🎨 POO : Programmation Orientée Objet
  6. 🔐 Sécurité : protéger vos applications

Ressources utiles 📚

  • 📖 php.net : Documentation officielle
  • 🎯 W3Schools PHP : Tutoriels interactifs
  • 💻 PHP The Right Way : Bonnes pratiques
  • 🎓 OpenClassrooms : Cours en français
  • 🔧 XAMPP/WAMP : Environnement de développement

Merci ! 👏

Des questions ?

🐘 Bienvenue dans le monde de PHP !