Maison  >  Article  >  développement back-end  >  Le clone PHP revisite la programmation orientée objet

Le clone PHP revisite la programmation orientée objet

不言
不言original
2018-04-08 15:07:43959parcourir

Le contenu présenté dans cet article est un clone PHP revisitant la programmation orientée objet. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

copie d'objet php
fonction de clonage, copiez un nouveau. object , toutes les propriétés doivent rester identiques à celles de la fenêtre d'origine, mais il doit s'agir d'un nouvel objet. (S'il ne s'agit pas d'un nouvel objet, alors les modifications dans une fenêtre affecteront l'autre fenêtre, ou l'objet A contient une référence à l'objet B, et lorsque vous copiez l'objet A, l'objet que vous souhaitez utiliser n'est plus l'objet B mais l'objet Une copie de B. À ce stade, vous devez obtenir une copie de l'objet A.)

PHP Deep Copy et Shallow Copy
À partir de PHP5, le nouvel opérateur renvoie automatiquement une référence. Un objet utilise un identifiant pour accéder au contenu réel de l'objet.
La copie approfondie fait référence à la copie des variables de l'objet référencé uniquement vers le nouvel objet qui a été copié, plutôt que vers l'objet référencé d'origine.
Il existe deux façons d'implémenter la copie profonde en PHP. 1️⃣ cloner 2️⃣ En sérialisant l'objet, sérialisez d'abord l'objet puis désérialisez-le.

ResumeA));

La méthode __clone ne peut avoir aucun paramètre , il contient automatiquement

que deux pointeurs
ceci fait référence aux propriétés de l'objet actuel, et cela fait référence aux propriétés de l'ancien objet

Classes et objets
Classe : Une collection d'un ensemble d'objets avec les mêmes propriétés et services.
Objet : Le résultat de l'instanciation de classe est l'objet

Méthode Constructeur :
Un seul constructeur peut être déclaré dans une classe, mais le constructeur ne sera appelé qu'une seule fois à chaque fois qu'un objet est créé. , cette méthode ne peut pas être appelée activement, elle est donc généralement utilisée pour effectuer certaines tâches d'initialisation utiles. Par exemple, les propriétés correspondantes se voient attribuer des valeurs initiales lors de la création de l'objet.

Destructeur
Effectuer certaines opérations en cours ou compléter certaines fonctions avant de détruire une classe
Le destructeur sera supprimé lorsque toutes les références à un objet seront supprimées ou lorsque l'objet est explicitement détruit est exécuté lorsque l'objet est détruit dans la mémoire, c'est-à-dire que le destructeur est appelé avant que l'objet ne soit détruit dans la mémoire. La classe

place en fait l'objet dans la mémoire sous forme de pile, donc lorsque le destructeur est finalement détruit. appelé, il suit le principe du dernier entré, premier sorti

Trois caractéristiques majeures de la programmation orientée objet :
Encapsulation, Héritage, Polymorphisme
Encapsulation : combine toutes les propriétés de l'objet et toutes. services pour former une unité (objet) indépendante indivisible, masquage d'informations, c'est-à-dire masquer autant que possible les détails internes de l'objet
Héritage Héritage unique (PHP JAVA, une classe dérivée en C++ peut être dérivée de plusieurs classes de base ) Le nouveau type de données défini a non seulement des membres nouvellement définis, mais également d'anciens membres. Nous appelons les classes existantes utilisées pour dériver de nouvelles classes classes de base, également appelées classes parents et super classes. Une nouvelle classe dérivée d’une classe existante est appelée classe dérivée, également appelée sous-classe.

La surcharge PHP fait référence aux sous-classes remplaçant les méthodes existantes de la classe parent

final définit les membres d'attribut qui ne peuvent pas être remplacés par les sous-classes

static et const
static description Propriétés des membres et les méthodes membres sont statiques.
les membres statiques peuvent restreindre l'accès externe, car les membres statiques appartiennent à la classe et n'appartiennent à aucune instance d'objet. Ils constituent un espace alloué lors du premier chargement de la classe, les autres classes sont inaccessibles. Seul le partage de la force de la classe peut protéger la classe dans une certaine mesure.

static ne peut pas accéder aux membres statiques dans les méthodes statiques. Utilisez const pour implémenter

Les propriétés de membre du modificateur const sont accessibles de la même manière que les membres modifiés statiquement. nom. Dans la méthode Self est utilisé à l'intérieur, mais il n'est pas nécessaire d'utiliser le symbole $ et les objets ne peuvent pas être utilisés pour accéder à

Sérialiser l'objet
Il existe deux situations dans lesquelles nous devons sérialiser l'objet. . La première situation est la sérialisation d'un objet. Les objets doivent être sérialisés lors de leur transmission sur le réseau. Le deuxième cas est celui où la sérialisation des objets est écrite dans des fichiers ou des bases de données.

Le paramètre de la fonction serialize() est le nom de l'objet et la valeur de retour est une chaîne.

Lors de la sérialisation d'un objet, la méthode __sellp —– (certains attributs de membre peuvent être masqués à ce moment) sera automatiquement exécutée. La désérialisation consiste à exécuter __wakup() —- (peut attribuer des valeurs à ce moment. ) )méthode.

La fonction __sleep() n'accepte aucun paramètre, mais renvoie un tableau contenant les attributs qui doivent être sérialisés. Les attributs qui ne sont pas inclus seront ignorés lors de la sérialisation. S'il n'y a pas de méthode __sleep(), PHP enregistrera tous les attributs.

copie d'objet php
fonction de clonage, copie un nouvel objet, toutes les propriétés doivent être conservées les mêmes que la fenêtre d'origine, mais il doit s'agir d'un nouvel objet. (S'il ne s'agit pas d'un nouvel objet, alors les modifications dans une fenêtre affecteront l'autre fenêtre, ou l'objet A contient une référence à l'objet B, et lorsque vous copiez l'objet A, l'objet que vous souhaitez utiliser n'est plus l'objet B mais l'objet Une copie de B. À ce moment, vous devez obtenir une copie de l'objet A.)

Copie profonde PHP et copie superficielle
À partir de PHP5, le nouvel opérateur renvoie automatiquement une référence. Un objet utilise un identifiant pour accéder au contenu réel de l'objet.
La copie approfondie fait référence à la copie des variables de l'objet référencé uniquement vers le nouvel objet qui a été copié, plutôt que vers l'objet référencé d'origine.
Il existe deux façons d'implémenter la copie profonde en PHP. 1️⃣ cloner 2️⃣ En sérialisant l'objet, sérialisez d'abord l'objet puis désérialisez-le.

ResumeA));

La méthode __clone ne peut avoir aucun paramètre , il contient automatiquement

que deux pointeurs
ceci fait référence aux propriétés de l'objet actuel, et cela fait référence aux propriétés de l'ancien objet

Classes et objets
Classe : Une collection d'un ensemble d'objets avec les mêmes propriétés et services.
Objet : Le résultat de l'instanciation de classe est l'objet

Méthode de construction :
Un seul constructeur peut être déclaré dans une classe, mais le constructeur ne sera appelé qu'une seule fois à chaque fois qu'un objet est créé. , cette méthode ne peut pas être appelée activement, elle est donc généralement utilisée pour effectuer certaines tâches d'initialisation utiles. Par exemple, les propriétés correspondantes se voient attribuer des valeurs initiales lors de la création de l'objet.

Destructeur
Effectuer certaines opérations en cours ou compléter certaines fonctions avant de détruire une classe
Le destructeur sera supprimé lorsque toutes les références à un objet seront supprimées ou lorsque l'objet est explicitement détruit est exécuté lorsque l'objet est détruit dans la mémoire, c'est-à-dire que le destructeur est appelé avant que l'objet ne soit détruit dans la mémoire. La classe

place en fait l'objet sous forme de pile dans la mémoire, donc lorsque le destructeur est finalement détruit. appelé, il suit le principe du dernier entré, premier sorti

Trois caractéristiques majeures de la programmation orientée objet :
Encapsulation, héritage, polymorphisme
Encapsulation : combine toutes les propriétés de l'objet et tout. services pour former une unité (objet) indépendante indivisible, masquage d'informations, c'est-à-dire masquer autant que possible les détails internes de l'objet
Héritage Héritage unique (PHP JAVA, une classe dérivée en C++ peut être dérivée de plusieurs classes de base ) Le nouveau type de données défini a non seulement des membres nouvellement définis, mais également d'anciens membres. Nous appelons les classes existantes utilisées pour dériver de nouvelles classes des classes de base, également appelées classes parentes et super classes. Une nouvelle classe dérivée d’une classe existante est appelée classe dérivée, également appelée sous-classe.

La surcharge PHP fait référence aux sous-classes remplaçant les méthodes existantes de la classe parent

final définit les membres d'attribut qui ne peuvent pas être remplacés par les sous-classes

static et const
static description Propriétés des membres et les méthodes membres sont statiques.
les membres statiques peuvent restreindre l'accès externe, car les membres statiques appartiennent à la classe et n'appartiennent à aucune instance d'objet. Ils constituent un espace alloué lors du premier chargement de la classe, les autres classes sont inaccessibles. Seul le partage de la force de la classe peut protéger la classe dans une certaine mesure.

static ne peut pas accéder aux membres statiques dans les méthodes statiques. Utilisez const pour implémenter

Les propriétés de membre du modificateur const sont accessibles de la même manière que les membres modifiés statiquement. nom. Dans la méthode Self est utilisé à l'intérieur, mais il n'est pas nécessaire d'utiliser le symbole $ et les objets ne peuvent pas être utilisés pour accéder à

Sérialiser l'objet
Il existe deux situations dans lesquelles nous devons sérialiser l'objet. . La première situation est la sérialisation d'un objet. Les objets doivent être sérialisés lors de leur transmission sur le réseau. Le deuxième cas est celui où la sérialisation des objets est écrite dans des fichiers ou des bases de données.

Le paramètre de la fonction serialize() est le nom de l'objet et la valeur de retour est une chaîne.

Lors de la sérialisation d'un objet, la méthode __sellp —– (certains attributs de membre peuvent être masqués à ce moment) sera automatiquement exécutée. La désérialisation consiste à exécuter __wakup() —- (une valeur peut être attribuée à ce moment-là. temps) )méthode.

La fonction __sleep() n'accepte aucun paramètre, mais renvoie un tableau contenant les attributs qui doivent être sérialisés. Les attributs qui ne sont pas inclus seront ignorés lors de la sérialisation. S'il n'y a pas de méthode __sleep(), PHP enregistrera tous les attributs.

Recommandations associées :

Explication détaillée de la citation et du clonage en 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn