Explication détaillée de la création d'objets de classe en PHP

小云云
Libérer: 2023-03-22 20:30:02
original
1380 Les gens l'ont consulté

Cet article partage principalement avec vous l'explication détaillée des objets créés en PHP, principalement en utilisant du texte et du code. J'espère qu'il pourra aider tout le monde.

La création d'objets en PHP est : nouveau nom de classe

Class A{
	public $p1=1;
}
$o1=new A();
var_dump($o1);
Copier après la connexion

Le résultat est :

Vous pouvez voir le variable $o1 Est un type d'objet de classe A. "#1" est un identifiant personnalisé interne au système.

Lorsque le système est créé, ce qui est stocké dans la variable $o1 est en fait l'identifiant personnalisé interne n°1 du système, et l'entité objet correspondante est trouvée via #1 (similaire au passage par référence).

Après avoir attribué la variable $o1 à $o2, la valeur p1 correspondante dans l'objet o1 est modifiée. À ce moment, la valeur p1 correspondante dans o2 change également :

$o2=$o1;
$o1->p1=10;
echo "<br/>$o2->p1";
var_dump($o2);
Copier après la connexion

.

Lors de la modification des attributs dans $o1, les attributs correspondants dans $o2 changeront également. Et les propriétés de o1 et o2 sont les mêmes (en fait, elles pointent vers le même objet).

La vraie manière est comme indiqué sur la figure :


Et pour l'application du passage par valeur en classe objets :

Class A{
	public $p1=1;
}
$o1=new A();
$o2=&$o1;
$o1->p1=10;
echo $o1->p1;
echo "<br/>";
echo $o2->p1;
echo "<br/>";
var_dump($o1);
echo "<br/>";
var_dump($o2);
Copier après la connexion

Lorsque vous modifiez l'attribut p1 dans l'objet o1, les attributs dans o2 changeront également. Ce n’est pas comme notre compréhension précédente du « passage de valeur » et du « passage de référence ».

La méthode d'implémentation spécifique est :


Donc, $o2 existe toujours après la désactivation ($o1).

Class A{
	public $p1=1;
}
$o1=new A();
$o2=&$o1;
$o1->p1=10;
unset($o1);
echo $o1->p1;
echo "<br/>";
echo $o2->p1;
echo "<br/>";
var_dump($o1);
echo "<br/>";
var_dump($o2);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal