Parcours
Apprendre PHP
Un cours PHP en ligne, gratuit et interactif. Tu écris du PHP à chaque leçon — syntaxe, fonctions, tableaux, formulaires, sessions et les bases pour construire un site dynamique — avec des indices IA quand un warning apparaît et un certificat gratuit à la fin.
28,877+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fondamentaux
Commencer la sectionDémarrerDévelopperRéduireConstruisez une base solide avec les concepts essentiels et les compétences de baseIntroduction to PHP
5 leçons331- 01The PHP LanguageDéfi
- 02Hello World!DéfiQuiz
- 03Tags and StatementsQuiz
- 04CommentsQuiz
- 05The new lineDéfiQuiz
Variables and Data Types
9 leçons663- 01NumbersDéfiQuiz
- 02Strings and QuotesDéfiQuiz
- 03BooleansQuiz
- 04Naming ConventionsQuiz
- 05Recap - Variable InitDéfi
- 06Empty VariablesQuiz
- 07String ConcatenationDéfiQuiz
- 08Getting User InputDéfiQuiz
- 09Cast to Different TypesDéfiQuiz
Basic Operators
8 leçons852- 01Arithmetic OperatorsDéfiQuiz
- 02Modulo OperatorDéfiQuiz
- 03Exponentiation OperatorDéfiQuiz
- 04Combined AssignmentDéfiQuiz
- 05Increment/DecrementDéfiQuiz
- 06Operator PrecedenceDéfiQuiz
- 07Recap - Simple CalculationsDéfi
- 08String OperatorsDéfiQuiz
Comparison & Logical Operators
5 leçons532- 01Comparison OperatorsDéfiQuiz
- 02Equality & IdentityDéfiQuiz
- 03Logical Operators Part 1DéfiQuiz
- 04Logical Operators Part 2DéfiQuiz
- 05Recap - Simple LogicDéfi
Conditional Logic
6 leçons639- 01If StatementDéfiQuiz
- 02If - ElseDéfiQuiz
- 03The Ternary OperatorDéfiQuiz
- 04Null Coalescing OperatorDéfiQuiz
- 05Switch StatementDéfiQuiz
- 06Recap - Making DecisionsDéfi
Arrays Part 1 - Indexed
7 leçons645- 01Introduction to ArraysQuiz
- 02Creating Indexed ArraysDéfiQuiz
- 03Accessing Elements by IndexDéfiQuiz
- 04Modifying Elements by IndexDéfiQuiz
- 05Array Size with CountDéfiQuiz
- 06Adding Elements to an ArrayDéfiQuiz
- 07Recap - Managing a Simple ListDéfi
Arrays Part 2 - Associative
6 leçons540- 01Intro to Associative ArraysQuiz
- 02Accessing Values by KeyDéfiQuiz
- 03Modifying Values by KeyDéfiQuiz
- 04Adding New Key-Value PairsDéfiQuiz
- 05Check if Key ExistsDéfiQuiz
- 06Recap - Key-Value Data StoreDéfi
Boucles
7 leçons746- 01Boucle forDéfiQuiz
- 02Boucle whileDéfiQuiz
- 03Boucle foreachDéfiQuiz
- 04Boucles avec clés et valeursDéfiQuiz
- 05Instruction breakDéfiQuiz
- 06Instruction continueDéfiQuiz
- 07Récapitulatif - Itérer sur les donnéesDéfi
Projet : Liste de tâches simple
Projet7 leçons1- 01Aperçu du projet & donnéesDéfi
- 02Ajouter une nouvelle tâcheProjet
- 03Afficher toutes les tâchesProjet
- 04Marquer une tâche comme terminéeProjet
- 05Supprimer une tâcheProjet
- 06Filtrer par statut de complétionProjet
- 07Gérer les scénarios de liste videProjet
Functions
8 leçons857- 01Declaring & Calling FunctionsDéfiQuiz
- 02Function ParametersDéfiQuiz
- 03Returning ValuesDéfiQuiz
- 04Default Parameter ValuesDéfiQuiz
- 05Type Declarations for ParamsDéfiQuiz
- 06Return Type DeclarationsDéfiQuiz
- 07Variable ScopeDéfiQuiz
- 08Recap - Creating Reusable CodeDéfi
Final Challenges
3 leçons3- 01Challenge - Factorial CalcDéfi
- 02Challenge - Longest WordDéfi
- 03Challenge - Vowel CounterDéfi
Section 2
Logique & Flux
Commencer la sectionDémarrerDévelopperRéduireDéveloppez vos compétences en résolution de problèmes et créez des programmes dynamiques et interactifsFonctions avancées
9 leçons965- 01Fonctions anonymesDéfiQuizAudio
- 02Closures et 'use'DéfiQuizAudio
- 03Fonctions fléchéesDéfiQuizAudio
- 04Fonctions de rappelDéfiQuizAudio
- 05Utilisation de 'call_user_func'DéfiQuizAudio
- 06Fonctions variablesDéfiQuiz
- 07Passage par référenceDéfiQuiz
- 08Fonctions récursivesDéfiQuiz
- 09Récapitulatif : Mélange de fonctionsDéfi
Manipulations avancées de tableaux
10 leçons1066- 01Ajouter avec 'array_push'DéfiQuiz
- 02Supprimer avec 'array_pop'DéfiQuiz
- 03Ajouter avec 'array_unshift'DéfiQuiz
- 04Supprimer avec 'array_shift'DéfiQuiz
- 05Fusionner des tableaux indexésDéfiQuiz
- 06Fusionner des tableaux associatifsDéfiQuiz
- 07Extraire avec 'array_slice'DéfiQuiz
- 08Valeurs avec 'in_array'DéfiQuiz
- 09Clés avec 'array_search'DéfiQuiz
- 10Récapitulatif : Exercice PlaylistDéfi
Tri des tableaux
7 leçons747- 01Trier les tableaux indexés par ordre croissantDéfiQuiz
- 02Trier les tableaux indexés par ordre décroissantDéfiQuiz
- 03Trier les tableaux associatifs par valeurDéfiQuiz
- 04Trier les tableaux associatifs par cléDéfiQuiz
- 05Tri par ordre naturelDéfiQuiz
- 06Tri personnalisé avec 'usort'DéfiQuiz
- 07Récapitulatif : Tri d'un classementDéfi
Tableaux multidimensionnels
6 leçons639- 01Créer un tableau 2DDéfiQuiz
- 02Accéder aux éléments d'un tableau 2DDéfiQuiz
- 03Modifier les éléments d'un tableau 2DDéfiQuiz
- 04Itérer avec des boucles imbriquéesDéfiQuiz
- 05Tableaux associatifs 2DDéfiQuiz
- 06Récapitulatif : Exercice de grille simpleDéfi
Carnet de notes des élèves
6 leçons6- 01Configuration du projet : Structure de donnéesDéfi
- 02Ajouter un nouvel élèveDéfi
- 03Ajouter une note à un élèveDéfi
- 04Calculer la moyenne d'un élèveDéfi
- 05Trouver le meilleur élèveDéfi
- 06Générer un bulletin de notesDéfi
Fonctions de tableau d'ordre supérieur
7 leçons745- 01Transformer avec 'array_map'DéfiQuiz
- 02'array_map' avec une fonction personnaliséeDéfiQuiz
- 03Filtrer avec 'array_filter'DéfiQuiz
- 04'array_filter' avec une fonction personnaliséeDéfiQuiz
- 05Réduire avec 'array_reduce'DéfiQuiz
- 06Parcourir avec 'array_walk'DéfiQuiz
- 07Récapitulatif : Traitement des donnéesDéfi
Travailler avec les dates et les heures
6 leçons539- 01La fonction 'date()'Quiz
- 02Timestamps Unix avec 'time()'DéfiQuiz
- 03Introduction à l'objet DateTimeDéfiQuiz
- 04Formater les objets DateTimeDéfiQuiz
- 05Modifier les objets DateTimeDéfiQuiz
- 06Récapitulatif : Calculs de datesDéfi
Gestion des erreurs et des exceptions
7 leçons650- 01Comprendre les erreurs PHPQuiz
- 02Le bloc 'try...catch'DéfiQuiz
- 03Le bloc 'finally'DéfiQuiz
- 04Lancer une exceptionDéfiQuiz
- 05Créer une exception personnaliséeDéfiQuiz
- 06Utiliser une exception personnaliséeDéfiQuiz
- 07Récapitulatif : Validation des entréesDéfi
Planificateur d'événements
Projet6 leçons1- 01Données d'événementDéfi
- 02Ajouter un nouvel événementProjet
- 03Lister les événements à venirProjet
- 04Trier les événements par dateProjet
- 05Filtrer les événements par moisProjet
- 06Afficher un compte à reboursProjet
Défis finaux
4 leçons4- 01Défi : Vérificateur de palindromeDéfi
- 02Défi : Fréquence des caractèresDéfi
- 03Défi : Total du panierDéfi
- 04Défi : Filtre d'éléments uniquesDéfi
Section 3
Programmation Orientée Objet
Commencer la sectionDémarrerDévelopperRéduireDécouvrez comment organiser le code avec des classes, des objets et des structures réutilisablesLes bases de la POO
9 leçons969- 01Fichiers externesDéfiQuiz
- 02Introduction à la POODéfiQuiz
- 03Classes vs ObjetsDéfiQuiz
- 04Le mot-clé $thisDéfiQuiz
- 05MéthodesDéfiQuiz
- 06PropriétésDéfiQuiz
- 07Constructeur (__construct)DéfiQuiz
- 08Destructeur (__destruct)DéfiQuiz
- 09Récapitulatif - Calculatrice simpleDéfi
Espaces de noms et Autoloading
5 leçons534- 01Introduction aux espaces de nomsDéfiQuiz
- 02Le mot-clé useDéfiQuiz
- 03Standard d'Autoloading PSR-4DéfiQuiz
- 04L'Autoloader ComposerDéfiQuiz
- 05Récapitulatif - Projet organiséDéfi
Propriétés de classe
6 leçons644- 01Propriétés d'instance vs Propriétés statiquesDéfiQuiz
- 02Constantes dans les classesDéfiQuiz
- 03Méthodes et propriétés statiquesDéfiQuiz
- 04Propriétés privées et protégéesDéfiQuiz
- 05Propriétés readonly (PHP 8.1)DéfiQuiz
- 06Récapitulatif - Gestionnaire de compte bancaireDéfi
Héritage
6 leçons644- 01Héritage de baseDéfiQuiz
- 02Le mot-clé parent::DéfiQuiz
- 03Redéfinition de méthodeDéfiQuiz
- 04Le mot-clé finalDéfiQuiz
- 05Classes abstraitesDéfiQuiz
- 06Récapitulatif - Hiérarchie des employésDéfi
Interfaces et Contrats
6 leçons645- 01Introduction aux InterfacesDéfiQuiz
- 02Implémentation d'InterfacesDéfiQuiz
- 03Implémentation d'Interfaces MultiplesDéfiQuiz
- 04Interface vs Classe AbstraiteDéfiQuiz
- 05Type Hinting avec les InterfacesDéfiQuiz
- 06Récapitulatif - Calculateur de FormesDéfi
Polymorphisme
5 leçons536- 01Retour sur la redéfinition de méthodeDéfiQuiz
- 02Polymorphisme via les interfacesDéfiQuiz
- 03Type Hinting et Types d'unionDéfiQuiz
- 04Liaison statique tardiveDéfiQuiz
- 05Récapitulatif - Processeur de paiementDéfi
Encapsulation
6 leçons645- 01Public, Protégé, PrivéDéfiQuiz
- 02Modificateurs d'accès en détailDéfiQuiz
- 03Getters et SettersDéfiQuiz
- 04Masquage d'informationDéfiQuiz
- 05Promotion de constructeur (8.0)DéfiQuiz
- 06Récapitulatif - Système de gestion d'étudiantsDéfi
Méthodes magiques
7 leçons753- 01Introduction aux méthodes magiquesDéfiQuiz
- 02__toString & __debugInfoDéfiQuiz
- 03__get, __set, __isset, __unsetDéfiQuiz
- 04__call & __callStaticDéfiQuiz
- 05__clone & Clonage d'objetsDéfiQuiz
- 06__serialize & __unserializeDéfiQuiz
- 07Récapitulatif - Collection personnaliséeDéfi
Traits
5 leçons544- 01Introduction aux TraitsDéfiQuiz
- 02Utilisation de plusieurs TraitsDéfiQuiz
- 03Résolution des conflits de TraitsDéfiQuiz
- 04Méthodes abstraites dans les TraitsDéfiQuiz
- 05Traits vs HéritageDéfiQuiz
Concepts avancés de la POO
7 leçons761- 01Composition vs HéritageDéfiQuiz
- 02Injection de dépendancesDéfiQuiz
- 03Classes anonymesDéfiQuiz
- 04Énumérations (PHP 8.1)DéfiQuiz
- 05Fibers (PHP 8.1)DéfiQuiz
- 06Clonage d'objets : analyse approfondieDéfiQuiz
- 07Générateurs et ItérateursDéfiQuiz
Système de types et gestion des erreurs
7 leçons754- 01Déclarations de typesDéfiQuiz
- 02Types nullablesDéfiQuiz
- 03Types d'union et d'intersectionDéfiQuiz
- 04Classes d'exceptionDéfiQuiz
- 05Hiérarchie d'exceptions personnaliséesDéfiQuiz
- 06Try, Catch, FinallyDéfiQuiz
- 07Récapitulatif - Validateur de formulaireDéfi
Patrons de conception Partie 1
5 leçons546- 01Introduction aux patrons de conceptionDéfiQuiz
- 02Patron SingletonDéfiQuiz
- 03Patron FabriqueDéfiQuiz
- 04Patron ObservateurDéfiQuiz
- 05Patron StratégieDéfiQuiz
Patrons de conception Partie 2
7 leçons764- 01Patron CommandeDéfiQuiz
- 02Patron AdaptateurDéfiQuiz
- 03Patron DécorateurDéfiQuiz
- 04Patron Méthode ModèleDéfiQuiz
- 05Patron ÉtatDéfiQuiz
- 06Patron CompositeDéfiQuiz
- 07Patron RepositoryDéfiQuiz
Projet : Gestion de bibliothèque
Projet6 leçons1- 01Présentation du projetDéfi
- 02Classes Livre et UtilisateurProjet
- 03Système d'empruntProjet
- 04Fonctionnalité de rechercheProjet
- 05Interface d'administrationProjet
- 06Tests et intégrationProjet
Défis finaux
4 leçons4- 01Plateforme d'E-LearningDéfi
- 02Système bancaireDéfi
- 03Développement de personnages de jeuDéfi
- 04Service de location de véhiculesDéfi
Pourquoi apprendre PHP avec Coddy
- Exécute du vrai code PHP dans ton navigateur. Pas de XAMPP, pas d'Apache, aucun serveur local à configurer. Chaque leçon exécute ton PHP côté serveur et affiche le résultat immédiatement.
- PHP pour le web tel qu'on l'utilise vraiment aujourd'hui : variables, contrôle de flux, fonctions, tableaux, includes, formulaires, superglobales, sessions et les bases pour travailler avec une base de données. Les fondamentaux de PHP dont tout développeur web a besoin.
- Les indices IA t'aident à déboguer les erreurs PHP et à démêler les warnings sans te donner la réponse, pour que les classiques — undefined index, soucis de quotes — deviennent des occasions d'apprendre au lieu d'impasses.
- Certificat PHP gratuit à la fin du cours. Une preuve crédible pour les postes en développement web, WordPress et Laravel, où PHP reste un prérequis de base.
Questions fréquentes sur l’apprentissage de PHP
PHP est-il facile à apprendre ?
PHP fait partie des langages les plus accessibles pour débuter. La syntaxe est tolérante, tu peux l'imbriquer directement dans du HTML, et le résultat s'affiche tout de suite dans le navigateur. La plupart des débutants ont une page PHP qui tourne dès la première heure. Les parties plus délicates (sécurité, sessions, bases de données) viennent plus tard, en douceur.
PHP vaut-il encore le coup en 2026 ?
Oui. PHP fait toujours tourner une bonne partie du web — WordPress à lui seul propulse environ 40 % des sites, et des frameworks comme Laravel et Symfony sont bien vivants. Pour du développement WordPress, du web en agence ou n'importe quel backend qui parle à MySQL, PHP reste une compétence très utile.
Combien de temps faut-il pour apprendre PHP ?
Les bases de PHP — variables, conditions, boucles, fonctions, tableaux — te prendront une à deux semaines avec de la pratique quotidienne. Construire un petit site dynamique avec des formulaires, des sessions et des requêtes en base de données demande en général un à trois mois de plus. Aller plus loin avec Laravel ou le développement WordPress, c'est encore une autre étape.
Quelle est la différence entre PHP et HTML ?
HTML est le langage de balisage qui décrit la structure d'une page web. PHP est un langage de programmation qui tourne sur le serveur et génère du HTML avant qu'il n'arrive au navigateur — c'est comme ça qu'on produit des pages dynamiques, qu'on connecte les utilisateurs, qu'on enregistre les données d'un formulaire, etc. Les deux fonctionnent ensemble : HTML pour la mise en page, PHP pour la logique.
Est-ce que je peux apprendre PHP en ligne gratuitement ?
Oui. Le cours interactif de PHP est gratuit — leçons, exercices de code, quiz et certificat. PHP s'exécute côté serveur dans un environnement sandboxé, donc tu n'as pas besoin d'installer Apache, MySQL ou XAMPP en local pour commencer à coder.
Est-ce que j'obtiens un certificat PHP à la fin du cours ?
Oui. En terminant le cours PHP, tu obtiens un certificat de réussite gratuit que tu peux ajouter à ton CV ou partager sur LinkedIn — utile pour accompagner des sites WordPress, des applis Laravel ou tout projet web que tu as dans ton portfolio.