En PHP, si la classe n'est pas préparée à l'avance et que vous devez créer un objet de classe non définie, nous pouvons utiliser les trois méthodes suivantes : 1. "new stdClass()", "new class{}(object) " et "(objet)[]". L'éditeur le présentera en détail ci-dessous.
En PHP, si la classe n'est pas préparée à l'avance et qu'il faut créer un objet de classe non définie, on peut utiliser les trois méthodes suivantes :
nouvelle classe std()
nouvelle classe{}
(objet)[]
Le premier est stdClass. Cette classe est un modèle de classe vide et est le mot-clé réservé interne et le nom de classe. Elle peut être considérée comme la classe de base Object en Java. En Java, toutes les classes héritent naturellement de la classe de base Object. Le stdClass en PHP est un modèle de classe complètement vide. Votre propre classe nouvellement créée n’en est pas une sous-classe. Mais vous pouvez utiliser ce modèle de classe pour créer un objet de sa propre classe non définie. Bien entendu, il n’y a rien à l’intérieur de cet objet. Et
$a = new stdClass(); var_dump($a);
nouvelle classe{} ? Ceux qui développent depuis un certain temps et ont été exposés aux js front-end et à d'autres langages dynamiques devraient être capables de deviner qu'il s'agit d'une classe anonyme. Généralement très courant dans les objets paramètres. Les objets qu'il crée peuvent avoir des méthodes d'attribut.
$b = new class{ public $p = 1; }; var_dump($b);
La dernière chose que nous voyons est d'utiliser un tableau à convertir en un objet pour générer un objet.
$c = (object)[ 'p' => 1 ]; var_dump($c);
Évidemment, l'objet généré par la coercition de tableau est du même type que le premier objet, et il peut avoir des attributs ou non. Cependant, cela ne peut pas prendre de méthodes.
Les objets générés par la méthode de coercition de tableau sont très intuitifs et faciles à comprendre. S'il s'agit simplement d'une encapsulation d'objets d'attribut, l'utilisation de cette méthode sera plus élégante et plus confortable. La génération d'objets complexes peut être générée à l'aide de classes anonymes. Pour certains objets qui n'ont besoin que d'espaces réservés, vous pouvez utiliser la méthode stdClass. Bien entendu, utiliser un tableau vide est également très pratique.
Il convient de noter que la coercition des tableaux doit être conforme aux règles de conversion de type. Par exemple, le problème des indices numériques.
Dans le développement quotidien, nous utilisons souvent ces fonctions lors de l'utilisation de certaines interfaces ou frameworks ORM de bases de données. Par exemple, l'insertion et la modification de certains frameworks ORM nécessitent l'arrivée d'objets contenant uniquement des attributs. À l'heure actuelle, vous pouvez utiliser la méthode ci-dessus pour générer des objets de manière flexible sans définir complètement le modèle de classe.
Code de test :
https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php
Apprentissage recommandé : Tutoriel vidéo php
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!