11- Classe anonyme en PHP

Les classes anonymes sont des classes définies sans aucun nom. Elles ont été introduites dans PHP 7 pour permettre la création rapide des objets. Elles peuvent prendre des arguments via le constructeur, hériter d’autres classes, implémenter des interfaces, et utiliser des traits comme dans une classe normale.

En PHP 7, nous pouvons définir une classe anonyme en utilisant le mot-clé new class.

La syntaxe de base d’une classe anonyme est comme suite :

Nous utilisons le mot-clé « new », suivi du mot-clé « class », suivi des paramètres optionnels du constructeur, et enfin le corps de la classe qui est entre des accolades. Les objets instanciés par une classe anonyme ne sont pas différentes de celle des objets instanciés par une classe normale.

Exemple complète:

Comparées aux classes nommées, les classes anonymes sont à peu près pareils, Dans un sens où elles peuvent passer des paramètres au constructeur, hériter d’autres classes, implémenter des interfaces et utiliser des traits. Pourtant, les classes anonymes ne peuvent pas être sérialisées. Essayer de sérialiser une instance d’une classe anonyme, PHP génère une erreur fatale « Serialization of class@anonymous is not allowed… »

Les classes finales et les méthodes finales en PHP

Le mot-clé final est utilisé en PHP pour les méthodes et les classes. Le mot-clé final pour les méthodes empêche la surcharge des méthodes, alors que le mot-clé final pour les classes empêche l’héritage.

Méthode finale

On ne peut pas surcharger la méthode de la classe mère.

Dans l’exemple ci-dessus, la classe MathClass qui est la classe mère. Dans laquelle la méthode calculer est marquée comme finale. Cela implique que nous ne pouvons pas surcharger la méthode calculer dans aucune de ses classes filles. Pour identifier l’erreur, la classe fille School tente de définir la méthode calculer(). Cela produira une erreur fatale, cela implique que la méthode finale de la classe mère ne peut pas être définie dans sa classe fille.

Classe finale

Une classe fille ne peut pas hériter une classe mère déclarée final.

Dans l’exemple ci-dessus la classe A est définit avec le mot-clé final. Lorsque la classe B essaie d’hériter la classe mère A, PHP lève un message d’erreur qui dit : « La classe B ne peut pas hériter de la classe finale (A) », ce qui implique qu’il ne permet pas de créer une classe fille à partir de la classe mère.

Retour Plan Cours