Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

SOMMAIRE

Introduction

  1. Présentation du cours
  2. Introduction au PHP
  3. Mettre en place un env. de travail

Les bases en PHP

  1. Syntaxe de base du PHP
  2. Premières instructions PHP
  3. Introduction aux variables PHP
  4. Types de valeurs et concaténation
  5. Opérations sur les variables
  6. Conditions et opérateurs de comparaison
  7. Les conditions if, if...else et if... elseif... else
  8. Utilisation avancée des conditions
  9. Structures ternaires et switch
  10. Les boucles PHP
  11. Découverte des fonctions
  12. La portée des variables
  13. Les constantes PHP
  14. Les variables tableaux PHP
  15. Tableaux associatifs
  16. Tableaux multidimensionnels
  17. Test n°1

Gestion des dates en PHP

  1. Le timestamp
  2. Obtenir et formater une date
  3. Tester la validité d'une date
  4. Test n°2

Opérations sur les fichiers en PHP

  1. Lire, ouvrir, fermer un fichier
  2. Parcourir et lire un fichier par partie
  3. Créer un fichier et écrire dedans
  4. Ecrire dans un fichier
  5. Les instructions include et require
  6. Test n°3

Les variables superglobales

  1. Découverte des variables superglobales
  2. Les cookies
  3. Les sessions
  4. Test n°4

Les expressions régulières et PHP

  1. Découverte des regex
  2. Les fonctions PHP PCRE
  3. Quantifieurs et options
  4. Classes de caractères
  5. Test n°5

L'orienté objet en PHP

  1. Classes, instances et objets
  2. Propriétés et méthodes
  3. Extension de classe et héritage
  4. Le principe d'encapsulation
  5. La méthode constructeur
  6. L'opérateur de résolution de portée et la surcharge
  7. Constantes, méthodes et propriétés statiques
  8. Les classes et méthodes abstraites
  9. Les interfaces
  10. Les méthodes magiques
  11. Le chainage de méthodes
  12. Test n°6

Notions avancées en POO

  1. Le typage explicite
  2. Les traits
  3. Les closures et les classes anonymes
  4. L'auto-chargement des classes
  5. Le mot clef final
  6. Résolution statique à la volée
  7. Parcourir des objets
  8. Le clonage d'objets
  9. Comparaison d'objets
  10. Test n°7

Filtres, erreurs et exceptions

  1. Introduction aux filtres
  2. Utilisation pratique des filtres
  3. Gérer les erreurs en PHP
  4. Gérer les exceptions en PHP

RESOLUTION STATIQUE A LA VOLEE

Explication de la problématique et limitation de self::

Depuis sa version PHP 5.3, le PHP nous propose une fonctionnalité appelée résolution statique à la volée.

Cette fonctionnalité va nous être très utile dans le cas où l’on veut faire référence à la classe réellement appelée dans un contexte d’héritage statique.

Prenons immédiatement un exemple afin de bien comprendre la problématique qui provient des limitations de l’usage du mot clef self::.

Utilisation du mot clef self et appel de méthode dans un contexte statique

Illustration des limitations du mot clef self en PHP

Dans cet exemple, on crée une première classe Humain qui possède deux méthodes st atiques test() et getName().

Ensuite, on crée une deuxième classe Francais qui vient étendre la classe Humain et qui va surcharger la méthode getName() en la réécrivant.

Finalement, on tente d’afficher le résultat de echo Francais::test().

Notez que comme nous sommes dans un contexte statique, je ne prends pas la peine d’instancier ma classe.

Ici, normalement, vous devriez vous attendre à voir « Je suis Français » d’affiché puisque notre méthode test() lance l’exécution de getName() et qu’on l’a ici appelée depuis la classe enfant.

Pourtant, c’est bien le message « je suis humain » qui s’affiche à la place.

Cela est dû au fait que le mot clef self utilisé pour faire référence à la classe courante ne suit pas les règles de l’héritage courant mais fait toujours référence à la classe dans laquelle il est utilisé (donc ici la classe Humain).

Cela signifie donc que si on crée une méthode utilisant self:: dans une classe parent et qu’on appelle ensuite cette méthode depuis une classe enfant, self ne fera jamais référence à la classe enfant mais toujours au parent dans lequel il a été défini.

Utilisation de static:: pour faire référence à la classe couramment utilisée

C’est précisément pour dépasser ces limitations qu’a été introduit la résolution statique à la volée qui va utiliser le mot clef static:: plutôt que self::.

Le mot clef static:: va avoir le même rôle que self:: à la différence qu’il va lui faire référence à la classe utilisée pendant l’exécution.

Utilisation du mot clef static et résolution statique à la volée

La résolution statique à la volée permet de référencer la classe actuellement utilisée

Comme vous pouvez le constater, on a bien cette fois-ci le résultat voulu et attend.

Chapitre précédent

Chapitre suivant