Maison > Article > développement back-end > Comment convertir une classe en objet en php
Avec le développement continu de la programmation informatique, il existe de plus en plus de langages de programmation, parmi lesquels le langage PHP est l'un des langages les plus populaires. Dans le langage PHP, les concepts de classes et d'objets sont très importants. Une classe est une collection d'objets ayant les mêmes propriétés et méthodes, et un objet est une instance d'une classe. En langage PHP, les opérations associées sont effectuées en convertissant les classes en objets.
En langage PHP, la définition d'une classe s'effectue via le mot-clé class. Le format de déclaration d'une classe est : classe nom de classe {attributs et méthodes}, où les attributs et les méthodes sont membres de la classe, et les attributs définissent le statut. de la classe, tandis que les méthodes définissent le comportement fourni par la classe.
En langage PHP, la classe définie est en fait un modèle. Lorsque vous l'utilisez, vous devez l'instancier pour générer un objet. Il existe de nombreuses façons de créer des objets d'instance via des classes. Il existe généralement trois façons de créer des objets, à savoir de nouveaux. , clone et réflexion.
La première méthode : new mot-clé, cette méthode est le moyen le plus couramment utilisé pour créer une instance d'objet Utiliser le mot-clé new dans le langage PHP pour initialiser un objet revient à créer une instance d'objet de ce type.
Par exemple, nous définissons une classe Student :
class Student{ public $name; public $age; public function sayHello(){ echo "Hello, I am " . $this->name . "."; } }
Utilisez le nouveau mot-clé pour créer une instance de l'objet Student :
$stu = new Student(); $stu->name = "Tom"; $stu->age = 18; $stu->sayHello();
Dans le code ci-dessus, nous créons un objet instance de la classe Student via le nouveau mot-clé, et puis modifiez l'objet instance. Les propriétés sont initialisées et enfin la méthode sayHello est appelée pour afficher le résultat.
Deuxième méthode : mot-clé clone, cette méthode est un moyen de créer des instances d'objet ajoutées après PHP5. À l'aide du mot-clé clone, vous pouvez créer une copie de l'objet d'origine et la renvoyer.
$stu1 = new Student(); $stu1->name = "Mike"; $stu1->age = 22; $stu2 = clone $stu1; $stu2->name = "Jordan"; echo $stu1->name; //输出Mike echo $stu2->name; //输出Jordan
Dans le code ci-dessus, nous créons une copie de $stu1 via le mot-clé clone, modifions la valeur de l'attribut $name de la copie et les résultats de sortie finaux sont Mike et Jordan. Il convient de noter que la valeur de l'attribut $name de $stu1 n'a pas changé.
La troisième voie : mécanisme de réflexion, grâce auquel vous pouvez accéder et utiliser les propriétés et les méthodes des objets, comme obtenir des noms de classe, obtenir des propriétés, appeler des méthodes, etc.
$stu = new Student(); $stu->name = "Jerry"; $stu->age = 20; //获取类名 $class_name = get_class($stu); echo $class_name . "\n"; //输出Student //获取对象属性 $reflector = new ReflectionClass("Student"); $property = $reflector->getProperty("name"); echo $property->getValue($stu); //输出Jerry //反射机制调用方法 $method = $reflector->getMethod("sayHello"); $method->invokeArgs($stu, array()); //输出Hello, I am Jerry.
Dans le code ci-dessus, nous avons obtenu l'objet $stu via le mécanisme de réflexion, obtenant ainsi le nom de la classe, les attributs de l'objet et les méthodes d'appel dans l'objet.
Résumé : La conversion de classes en objets est une opération très courante dans le langage PHP. Elle peut généralement être implémentée via de nouveaux mécanismes de clonage, de réflexion, etc. Cependant, différentes méthodes conviennent à différents scénarios. Dans les applications pratiques, il est nécessaire de choisir une méthode appropriée pour créer et exploiter des objets en fonction de la situation spécifique, afin de réaliser les fonctions pertinentes du programme de manière pratique et rapide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!