Maison >développement back-end >tutoriel php >Explication détaillée de la création d'objets de classe en PHP

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

小云云
小云云original
2018-03-31 10:00:591403parcourir

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);

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);

.

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);

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);

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