PHP Débutant

PHP : Les Fondamentaux du Langage Web le Plus Populaire

Découvrez PHP de zéro et maîtrisez les bases essentielles pour créer vos premières applications web dynamiques. Un cours pratique et progressif où la théorie rencontre immédiatement le code.

Preparetoi.academy 30 min

1. Qu'est-ce que PHP et pourquoi l'apprendre ?

Définition

PHP (Hypertext Preprocessor) est un langage de programmation côté serveur conçu spécifiquement pour créer des sites web dynamiques. Contrairement au HTML et CSS qui s'exécutent dans le navigateur de l'utilisateur, PHP s'exécute sur le serveur web avant d'envoyer le résultat au navigateur.

Explication détaillée

Imaginez PHP comme un cuisinier dans une cuisine (le serveur). Quand un client (l'utilisateur) commande un plat (demande une page web), le cuisinier prépare le plat exactement comme le client l'a demandé, puis lui envoie le résultat fini. Le client ne voit jamais la cuisine, seulement le plat final. De la même manière, le navigateur de l'utilisateur ne voit jamais le code PHP, seulement le HTML généré par PHP.

PHP est extraordinairement populaire : environ 77% des sites web dont le langage côté serveur est connu utilisent PHP. Les géants du web comme Facebook, Wikipedia et WordPress l'utilisent. Pourquoi ? Parce que PHP est facile à apprendre, flexible, gratuit, et fonctionne sur pratiquement tous les serveurs d'hébergement web.

Le cycle de vie du PHP est simple : l'utilisateur demande une page → le serveur exécute le code PHP → PHP génère du HTML → le navigateur reçoit le HTML et l'affiche. C'est ce qui rend PHP parfait pour les débutants : vous pouvez commencer simple et progresser graduellement.

Bloc de code

<?php
// Ceci est votre premier code PHP
echo "Bonjour le monde !";
?>

Tableau comparatif

Caractéristique PHP HTML JavaScript
Exécution Serveur Navigateur Navigateur
Dynamique Oui Non Oui
Accès à la base de données Oui Non Non
Sécurité Haute - Basse
Courbe d'apprentissage Facile Très facile Facile

Astuce pédagogique

Pour bien comprendre PHP, pensez toujours à cette question : "Est-ce que j'ai besoin de traiter les données côté serveur ?" Si oui, c'est PHP. Si non, c'est du HTML/CSS/JavaScript.

Attention ⚠️

Ne confondez pas PHP et JavaScript ! PHP s'exécute AVANT que la page n'arrive chez l'utilisateur. JavaScript s'exécute APRÈS dans le navigateur. Ils ne peuvent pas directement se parler mais travaillent ensemble dans les applications web modernes.


2. Les Variables et Types de Données : Stocker et Manipuler l'Information

Définition

Une variable est un conteneur nommé qui stocke une valeur. En PHP, les variables commencent toujours par le symbole $ suivi du nom de la variable. Les types de données sont les catégories de valeurs que PHP peut traiter : nombres, textes, booléens, etc.

Explication détaillée

Pensez à une variable comme une boîte d'étiquetage. Vous collez une étiquette sur la boîte (le nom de la variable), puis mettez quelque chose dedans (la valeur). Plus tard, vous pouvez ouvrir cette boîte pour vérifier ce qu'elle contient ou le modifier.

PHP est un langage faiblement typé, ce qui signifie que vous n'avez pas besoin de déclarer le type d'une variable avant de l'utiliser. PHP détecte automatiquement si vous stockez un nombre, du texte ou autre chose. C'est un avantage pour les débutants, mais aussi une source potentielle d'erreurs si vous n'y prêtez pas attention.

Les types de données principaux sont :

  • String : du texte entre guillemets ("Bonjour" ou 'Bonjour')
  • Integer : un nombre entier (42, -10, 0)
  • Float : un nombre décimal (3.14, 2.5)
  • Boolean : vrai ou faux (true ou false)
  • Array : une collection de valeurs
  • NULL : l'absence de valeur

Une notion importante : vous pouvez changer le type d'une variable à tout moment. Une variable peut contenir un nombre à un moment, puis être remplacée par du texte. PHP s'adapte automatiquement.

Bloc de code

<?php
// Déclaration de variables de différents types
$nom = "Alice";              // String
$age = 25;                   // Integer
$taille = 1.65;              // Float
$etudiant = true;            // Boolean
$fruits = ["pomme", "orange"]; // Array

// Affichage des variables
echo $nom;                   // Affiche : Alice
echo $age;                   // Affiche : 25
echo $taille;                // Affiche : 1.65

// Modification d'une variable
$age = 26;                   // On change la valeur

// Utilisation de la fonction var_dump pour voir le type
var_dump($nom);              // Affiche string(5) "Alice"
var_dump($age);              // Affiche int(26)
?>

Tableau des types de données

Type Exemple Description
String "Bonjour PHP" Texte entre guillemets simples ou doubles
Integer 42 Nombre entier positif ou négatif
Float 3.14159 Nombre avec décimales
Boolean true/false Vrai ou faux
Array ["a", "b", "c"] Collection de valeurs
NULL null Aucune valeur
Object new Classe() Instance d'une classe

Astuce pédagogique

Utilisez la fonction var_dump() pour déboguer et comprendre le type et la valeur exacte d'une variable. C'est votre amie pendant l'apprentissage ! var_dump($mavariable); vous montrera exactement ce qu'elle contient.

Attention ⚠️

Les noms de variables sont sensibles à la casse : $nom, $Nom et $NOM sont trois variables différentes ! Aussi, les noms de variables ne peuvent pas commencer par un nombre ($2var est invalide, mais $var2 est valide).


3. Les Opérateurs et Structures de Contrôle : Prendre des Décisions

Définition

Les opérateurs sont des symboles qui effectuent des opérations sur les variables (addition, comparaison, etc.). Les structures de contrôle (if, else, switch) permettent au programme de prendre des décisions et d'exécuter différents blocs de code selon certaines conditions.

Explication détaillée

Les opérateurs sont comme des outils mathématiques ou logiques. Les opérateurs arithmétiques (+, -, *, /, %) effectuent des calculs. Les opérateurs de comparaison (==, !=, <, >, <=, >=) comparent deux valeurs et retournent vrai ou faux. Les opérateurs logiques (&&, ||, !) combinent des conditions.

Les structures de contrôle sont essentielles à la programmation. Elles permettent au code de réagir à différentes situations. Par exemple, "Si l'utilisateur a plus de 18 ans, affiche un contenu, sinon affiche un message différent". Sans structures de contrôle, un programme ferait exactement la même chose à chaque fois.

La structure if/else est la plus commune : vous testez une condition, et selon qu'elle soit vraie ou fausse, vous exécutez un bloc de code ou un autre. Vous pouvez aussi enchaîner plusieurs conditions avec elseif.

Le switch est utile quand vous avez plusieurs conditions basées sur la même variable. C'est plus lisible qu'une longue chaîne de if/elseif.

Les boucles (for, while) répètent du code. Imaginons que vous devez afficher les nombres de 1 à 100. Sans boucle, vous devriez écrire 100 echo ! Avec une boucle, vous écrivez le code une fois et laissez la boucle le répéter.

Bloc de code

<?php
// Opérateurs arithmétiques
$a = 10;
$b = 3;
echo $a + $b;  // 13
echo $a - $b;  // 7
echo $a * $b;  // 30
echo $a / $b;  // 3.333...
echo $a % $b;  // 1 (reste de la division)

// Structure if/else
$age = 20;
if ($age >= 18) {
    echo "Vous êtes adulte";
} else {
    echo "Vous êtes mineur";
}

// Comparaisons
$nom = "Alice";
if ($nom == "Alice") {
    echo "Bienvenue Alice !";
}

// Opérateurs logiques
$age = 25;
$permis = true;
if ($age >= 18 && $permis) {
    echo "Vous pouvez conduire";
}

// Boucle for
for ($i = 1; $i <= 5; $i++) {
    echo "Nombre : " . $i . "<br>";
}

// Boucle while
$compteur = 1;
while ($compteur <= 3) {
    echo "Compteur : " . $compteur . "<br>";
    $compteur++;
}
?>

Tableau des opérateurs

Opérateur Nom Exemple Résultat
+ Addition 5 + 3 8
- Soustraction 5 - 3 2
* Multiplication 5 * 3 15
/ Division 6 / 2 3
% Modulo 7 % 3 1
== Égal à 5 == 5 true
!= Pas égal à 5 != 3 true
< Inférieur à 3 < 5 true
> Supérieur à 5 > 3 true
&& ET logique true && true true
|| OU logique true || false true

Astuce pédagogique

Comprenez bien la différence entre = (attribution) et == (comparaison). C'est une source d'erreurs très courante ! $age = 25 affecte la valeur 25 à $age. $age == 25 teste si $age est égal à 25.

Attention ⚠️

Les boucles infinies sont un piège courant ! Si vous écrivez while(true) ou que votre condition de boucle ne devient jamais false, votre programme tournera indéfiniment. Assurez-vous toujours que votre boucle a une condition d'arrêt claire.


4. Les Fonctions : Réutiliser et Organiser le Code

Définition

Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Vous définissez une fonction une fois, puis vous pouvez l'appeler autant de fois que vous en avez besoin. Les fonctions peuvent prendre des paramètres (entrées) et retourner des résultats (sorties).

Explication détaillée

Imaginons que vous devez calculer le double d'un nombre 100 fois dans votre programme. Sans fonctions, vous écriviriez $nombre * 2 cent fois. Avec une fonction, vous écrivez le code une fois, et appelez simplement la fonction autant de fois que nécessaire.

Les fonctions rendent le code plus propre, plus lisible et plus maintenable. Elles permettent aussi de réduire les erreurs puisque vous testez et corrigez le code une seule fois.

Une fonction a quatre éléments :

  1. Le mot-clé function
  2. Le nom de la fonction (commençant par une lettre ou underscore)
  3. Les paramètres entre parenthèses (optionnels)
  4. Le bloc de code entre accolades

Quand vous appelez une fonction, vous écrivez simplement son nom suivi de parenthèses. Si elle a des paramètres, vous les passez entre les parenthèses.

Le mot-clé return est crucial : il indique la valeur que la fonction doit retourner. Sans return, la fonction retourne NULL. Vous pouvez ensuite utiliser le résultat retourné : l'assigner à une variable, l'afficher, l'utiliser dans une expression, etc.

PHP propose aussi des centaines de fonctions prédéfinies (strlen pour la longueur d'une chaîne, abs pour la valeur absolue, etc.). L'apprentissage consiste aussi à découvrir et utiliser ces fonctions.

Bloc de code

<?php
// Définition d'une fonction simple
function saluer() {
    echo "Bonjour !";
}

// Appel de la fonction
saluer();  // Affiche : Bonjour !

// Fonction avec paramètres
function saluerPersonne($nom) {
    echo "Bonjour " . $nom . " !";
}

saluerPersonne("Alice");  // Affiche : Bonjour Alice !
saluerPersonne("Bob");    // Affiche : Bonjour Bob !

// Fonction avec paramètres multiples
function additionner($a, $b) {
    return $a + $b;
}

$resultat = additionner(5, 3);
echo $resultat;  // Affiche : 8

// Fonction avec paramètres par défaut
function afficherMessage($texte = "Message par défaut") {
    echo $texte;
}

afficherMessage();              // Utilise la valeur par défaut
afficherMessage("Mon texte");   // Utilise le texte fourni

// Fonction avec plusieurs retours (selon une condition)
function verifierAge($age) {
    if ($age >= 18) {
        return "Adulte";
    } else {
        return "Mineur";
    }
}

echo verifierAge(25);  // Affiche : Adulte
echo verifierAge(15);  // Affiche : Mineur

// Utilisation de fonctions prédéfinies PHP
$texte = "Bonjour";
echo strlen($texte);   // Affiche : 7 (nombre de caractères)
echo strtoupper($texte); // Affiche : BONJOUR
echo strtolower($texte); // Affiche : bonjour
?>

Tableau des éléments d'une fonction

Élément Description Exemple
Définition Créer une fonction avec function function maFonction() { }
Paramètres Données à passer à la fonction function saluer($nom)
Valeur par défaut Valeur utilisée si pas de paramètre function accueil($nom = "Ami")
Return Valeur retournée par la fonction return $resultat;
Appel Exécuter la fonction maFonction();
Prédéfinies Fonctions fournies par PHP strlen(), abs(), round()

Astuce pédagogique

Nommez vos fonctions de manière claire et descriptive. "calculerMoyenne" est beaucoup mieux que "calc" ou "f1". Cela rend votre code auto-documenté et facile à comprendre même des mois après l'avoir écrit.

Attention ⚠️

Attention à la portée des variables ! Une variable définie à l'intérieur d'une fonction n'existe que dans cette fonction. Si vous avez besoin d'une variable à plusieurs endroits, vous devez soit la passer en paramètre, soit l'utiliser le mot-clé global (bien que ce ne soit généralement pas recommandé pour les débutants).


5. Les Tableaux et Boucles Avancées : Traiter des Collections de Données

Définition

Un tableau (array) est une structure de données qui permet de stocker plusieurs valeurs dans une seule variable. Les tableaux PHP peuvent être indexés numériquement (accès par position) ou associatifs (accès par clé nominale). Les boucles avancées comme foreach permettent de parcourir facilement les tableaux.

Explication détaillée

Si les variables simples sont des boîtes contenant une valeur, les tableaux sont des armoires contenant plusieurs boîtes. Au lieu d'avoir $fruit1 = "pomme", $fruit2 = "orange", $fruit3 = "banane", vous avez un seul tableau $fruits contenant ces trois fruits.

Les tableaux indexés numériquement commencent par l'indice 0. Le premier élément est à la position 0, le second à la position 1, etc. C'est une convention universelle en programmation.

Les tableaux associatifs utilisent des clés textuelles à la place des indices numériques. C'est très utile pour les données structurées : au lieu de mémoriser que l'indice 0 est le nom et l'indice 1 est l'âge, vous pouvez utiliser les clés "nom" et "age", rendant le code plus lisible.

La boucle foreach est la meilleure façon de parcourir un tableau. Elle itère automatiquement sur chaque élément sans que vous ayez besoin de gérer manuellement les indices. C'est plus simple et moins sujet aux erreurs que les boucles for traditionnelles.

Vous pouvez aussi manipuler les tableaux avec des fonctions prédéfinies comme count() pour connaître le nombre d'éléments, array_push() pour ajouter un élément, array_merge() pour fusionner deux tableaux, sort() pour trier, etc.

Bloc de code

<?php
// Tableau indexé numérique
$fruits = ["pomme", "orange", "banane", "raisin"];
echo $fruits[0];  // Affiche : pomme
echo $fruits[2];  // Affiche : banane

// Ajouter un élément
$fruits[] = "fraise";  // Ajoute "fraise" à la fin
array_push($fruits, "cerise");  // Ajoute "cerise" à la fin

// Tableau associatif
$personne = [
    "nom" => "Alice",
    "age" => 28,
    "ville" => "Paris",
    "profession" => "Développeuse"
];

echo $personne["nom"];      // Affiche : Alice
echo $personne["age"];      // Affiche : 28
echo $personne["ville"];    // Affiche : Paris

// Modifier un élément
$personne["age"] = 29;

// Boucle foreach sur un tableau indexé
echo "Fruits : <br>";
foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
}

// Boucle foreach sur un tableau associatif
echo "Informations de la personne : <br>";
foreach ($personne as $cle => $valeur) {
    echo $cle . " : " . $valeur . "<br>";
}

// Compter les éléments
echo count($fruits);  // Affiche : 6

// Vérifier si une clé existe
if (isset($personne["nom"])) {
    echo "Le nom existe";
}

// Tableau multidimensionnel
$etudiants = [
    ["nom" => "Alice", "note" => 18],
    ["nom" => "Bob", "note" => 15],
    ["nom" => "Charlie", "note" => 17]
];

// Parcourir un tableau multidimensionnel
foreach ($etudiants as $etudiant) {
    echo $etudiant["nom"] . " a eu " . $etudiant["note"] . "<br>";
}

// Manipuler les tableaux
$nombres = [3, 1, 4, 1, 5];
sort($nombres);      // Trier en ordre croissant
echo implode(", ", $nombres);  // Affiche : 1, 1, 3, 4, 5
?>

Tableau des opérations sur tableaux

Opération Fonction Exemple Résultat
Nombre d'éléments count() count([1, 2, 3]) 3
Ajouter un élément array_push() array_push($arr, 5) Ajoute 5 à la fin
Retirer le dernier array_pop() array_pop($arr) Retourne et enlève le dernier
Fusionner array_merge() array_merge($a1, $a2) Combine deux tableaux
Trier sort() sort($arr) Trie en ordre croissant
Inverser array_reverse() array_reverse($arr) Inverse l'ordre
Chercher une valeur in_array() in_array(5, $arr) true/false

Astuce pédagogique

Affichez les tableaux avec print_r() ou var_dump() pour comprendre leur structure. print_r($tableau) vous montre de manière très lisible comment est organisé votre tableau, especially utile quand vous avez des tableaux multidimensionnels complexes.

Attention ⚠️

Rappelez-vous que les indices des tableaux commencent à 0, non à 1 ! Si vous avez 5 éléments, ils sont aux indices 0, 1, 2, 3, 4. Accéder à $tableau[5] causera une erreur. C'est une source d'erreurs très courante pour les débutants. Utilisez count() pour connaître le nombre exact d'éléments.

Accédez à des centaines d'examens QCM — Découvrir les offres Premium