Maison >développement back-end >tutoriel php >tutoriel orienté objet php 3
5. Comment instancier un objet
Nous avons dit plus haut que l'unité d'un programme orienté objet est un objet, mais les objets sont instanciés via des classes Puisque notre classe
sera déclarée, l'étape suivante est. pour instancier un objet.
Après avoir défini la classe, nous utilisons le mot-clé new pour générer un objet.
$对象名称= new 类名称(); <?php class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() //这个人可以说话的方法 { echo "这个人在说话"; }f unction run() //这个人可以走路的方法 { echo "这个人在走路"; } } $p1=new Person(); $p2=new Person(); $p3=new Person(); ?> $p1=new Person();
Ce code est le processus de génération d'objets d'instance via des classes. $p1 est le nom de l'objet que nous instancions. De même, $p2, $p3
sont également les objets que nous instancions. instancier. Nom de l'objet. Une classe peut instancier plusieurs objets. Chaque objet est indépendant. Le code ci-dessus équivaut à 3 personnes instanciées. Cela peut seulement signifier qu'ils sont tous des êtres humains, chacun a le sien. propres attributs de nom de famille
, de sexe et d'âge. Tant qu'ils sont des attributs de membre et des méthodes de membre
reflétés dans la classe, ils sont instanciés.
Les objets en PHP, comme les entiers et les types à virgule flottante, sont également une classe de données. Ils sont utilisés pour stocker différents types de données. Ils doivent être chargés en mémoire lors de l'exécution
. dans la mémoire ? Logiquement parlant, la mémoire est généralement divisée en 4 segments : le segment d'espace de pile, le segment d'espace de tas, le segment de code et le segment statique d'initialisation. Différentes déclarations dans le programme sont placées dans différents segments de mémoire
Le segment d'espace de pile est un endroit. pour stocker des types de données qui occupent la même longueur d'espace et occupent un petit espace, tels que les entiers 1, 10,
100, 1000, 10000, 100000, etc. L'espace occupé dans la mémoire est de la même longueur, les deux sont de 64 bits 4 octets. Alors quel segment de la mémoire les données
doivent-elles être de longueur variable et occuper un grand espace ? Ces données sont placées dans la mémoire du tas
. La mémoire de pile est directement accessible, tandis que la mémoire de tas n'est pas directement accessible. Pour notre objet, le numéro
est un type de données volumineux et occupe un espace de longueur variable, donc l'objet est placé dans le tas, mais le nom de l'objet
est placé dans la pile de cette façon. le nom de l'objet peut être utilisé.
$p1=new Person();Comme vous pouvez le voir sur l'image ci-dessus, $p1=new Person(); instance d'objet réel, qui se trouve dans la mémoire du tas. Pour les entités à l'intérieur, il y a 3 fois new Person() dans l'image ci-dessus
, donc 3 espaces seront ouverts dans le tas et 3 objets d'instance seront générés chacun. Les objets sont
indépendants les uns des autres. Utilisez votre propre espace. En PHP, tant que le nouveau mot-clé apparaît, un objet
sera instancié et votre propre espace sera créé dans le tas.
Chaque objet d'instance dans le tas stocke les attributs. Par exemple, les objets d'instance dans le tas stockent désormais le nom, le sexe
et l'âge. Chaque attribut possède à son tour une adresse.
$p1=new Person(); Le côté droit du signe égal $p1 est une variable de référence La première adresse de l'objet est affectée
à la variable de référence "$p1" via l'opérateur d'affectation "=. ", donc $p1 C'est une variable qui stocke la première adresse de l'objet. $p1 est placé dans la mémoire de la pile. $p1 est équivalent à un pointeur
pointant vers l'objet dans le tas, on peut donc faire fonctionner le objet via la variable de référence $p1. Habituellement, nous l'appelons également un objet Référence
en tant qu'objet.
6. Comment utiliser les membres dans l'objet
Comme vu ci-dessus, il existe deux types de membres dans l'objet PHP, l'un est l'attribut membre et l'autre est la méthode membre. On peut déclarer l'objet
, $p1=new Person(); comment utiliser les membres de l'objet ? Si vous souhaitez accéder aux membres de l'objet, vous devez utiliser un opérateur spécial "->" pour compléter l'accès aux membres de l'objet :
Object-> Attribut $p1->name $p2-> ;age; $p3->sex;
Object->Method $p1->say(); $p2->run();
Comme l'exemple suivant :
Il ressort de l'exemple ci-dessus que seuls les membres de l'objet doivent être accessibles à l'aide des méthodes objet->propriétés et objet->. Il n'y a pas de
<?php class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() //这个人可以说话的方法 { echo "这个人在说话"; }f unction run() //这个人可以走路的方法 { echo "这个人在走路"; } } $p1=new Person(); //创建实例对象$p1 $p2=new Person(); //创建实例对象$p2 $p3=new Person(); //创建实例对象$p3 //下面三行是给$p1对象属性赋值 $p1->name=”张三”; $p1->sex=”男”; $p1->age=20; //下面三行是访问$p1对象的属性 echo “p1对象的名字是:”.$p1->name.”<br>”; echo “p1对象的性别是:”.$p1->sex.”<br>”; echo “p1对象的年龄是:”.$p1->age.”<br>”; //下面两行访问$p1对象中的方法 $p1->say(); $p1->run(); //下面三行是给$p2对象属性赋值 $p2->name=”李四”; $p2->sex=”女”; $p2->age=30; //下面三行是访问$p2对象的属性 echo “p2对象的名字是:”.$p2->name.”<br>”; echo “p2对象的性别是:”.$p2->sex.”<br>”; echo “p2对象的年龄是:”.$p2->age.”<br>”; //下面两行访问$p2对象中的方法 $p2->say(); $p2->run(); //下面三行是给$p3对象属性赋值 $p3->name=”王五”; $p3->sex=”男”; $p3->age=40; //下面三行是访问$p3对象的属性 echo “p3对象的名字是:”.$p3->name.”<br>”; echo “p3对象的性别是:”.$p3->sex.”<br>”; LAMP 大讲堂PHP 面向对象技术(全面讲解) echo “p3对象的年龄是:”.$p3->age.”<br>”; //下面两行访问$p3对象中的方法 $p3->say(); $p3->run(); ?>
Ce qui précède est le contenu du didacticiel PHP orienté objet 3. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !