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 :

<?php
	$obj1 = new class() {};
	
	$obj2 = new class($x, $y) {
	   private $x;
	   private $y;
	   public function __construct($x, $y) {
	         $this->x = $x;
	         $this->y = $y;
	   }
	};
?>

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:
<?php
 
	class MyClass { }
	 
	interface MyInterface {}
	 
	trait MyTrait {
		public function display() {
		  return "Welcome to WayToLearnX.com";
		}
	}
	 
	$classX = new class extends MyClass implements MyInterface {
		use MyTrait;
	};
	 
	echo $classX->display();

?>

La sortie :

Welcome to WayToLearnX.com

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… »
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *