Ajax-loader-large-white
PHP Orienté Objet
A vous de jouer

Excellent travail ! Vous avez beaucoup appris aujourd'hui :

  • Des méthodes de d'objets et de classe très utiles, comme property_exists() et method_exists();
  • L'héritage;
  • Comment les classes enfants peuvent modifier le comportement de leur classe parent;
  • Comment les classes parent peut empêcher la spécialisation avec le mot-clé final;
  • Qu'est-ce que les constantes de classe et la façon de les utiliser avec l'opérateur de résolution de portée, ::;
  • Comment accéder à des propriétés et des méthodes de classe sans avoir à créer une instance de la classe en utilisant le mot-clé static et l'opérateur ::.

Utilisons toute cette connaissance pour travailler dans un exercice final (jeu de mots) !

Instructions
  1. Créez une classe appelée Person. Elle doit contenir une seule méthode, say() (parler), qui devrait prendre aucun argument et retourner : "Voici mes pensées !";
  2. Créez une autre classe, Mathematicien, qui hérite de Person. La classe Mathematicien devrait contenir une constante, nombreDor, qui vaut 1.618033988749894.
  3. Utilisez le mot-clé static et l'opérateur de résolution de portée et affichez le résultat de la méthode say() de la classe héritée Mathematicien sans créer d'instance de classe.
  4. Utiliser l'opérateur de résolution de portée pour afficher également la constante nombreDor dans la page.

C'est à vous... Si vous avez besoin d'une remise à niveau concernant la syntaxe, utilisez l'astuce !

?
Bloqué ? Voici une astuce ! Astuce

Créer une classe:

class ClassName {
  // Du code
}

Définir une méthode de classe :

class ClassName {
  public function methodName() {
    // Du code
  }
}

Définir une classe fille d'une autre classe parente :

class SubClass extends SuperClass {
  // Du code
}

Définir une constante de classe :

class MyClass {
  const classConstant;
}

Utiliser le mot-clé static:

class MyClass {
  static public $property = "Property";
  static public function myMethod() {
    // Du code
  }
}

Utiliser l'opérateur de résolution de portée :

MyClass::$property;
MyClass::myMethod();
index.php
project
View Preview