Maison > développement back-end > tutoriel php > tutoriel orienté objet php 4

tutoriel orienté objet php 4

黄舟
Libérer: 2023-03-04 12:24:02
original
1049 Les gens l'ont consulté

7. L'utilisation de la référence spéciale "$this"
Nous savons maintenant comment accéder aux membres de l'objet, accessible via la méthode "object->member", qui se trouve en dehors de l'objet
est la forme d'accès aux membres de l'objet, alors si je veux laisser la méthode dans l'objet accéder aux propriétés de cet objet à l'intérieur de l'objet, ou
est la méthode dans l'objet pour appeler d'autres méthodes de cet objet, alors comment fait-on pour gérer ? Parce que tous les membres de l'objet doivent être appelés à l'aide de l'objet
, y compris les appels entre membres internes de l'objet, PHP me fournit une référence à cet objet $this,
pour chaque objet Il existe une référence d'objet $this pour représenter l'objet et compléter l'appel des membres internes de l'objet. La signification originale de this est
"this". Dans l'exemple ci-dessus, nous instancions trois objets instances $P1, $ P2, $P3, chacun de. ces trois objets
ont leur propre $this, qui représente respectivement les objets $p1, $p2 et $p3.
Nous pouvons voir sur la figure ci-dessus que $this est la référence qui représente l'objet à l'intérieur de l'objet. La méthode utilisée pour appeler les membres
de cet objet à l'intérieur de l'objet et les membres de l'objet à l'extérieur de l'objet sont. le même.

$this->属性$this->name; $this->age; $this->sex;
$this->方法$this->say(); $this->run();
Copier après la connexion

Modifiez l'exemple ci-dessus afin que chacun puisse indiquer son nom, son sexe et son âge :

<?php
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//下面是人的成员方法
function say() //这个人可以说话的方法
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}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对象中的说话方法
$p1->say();
//下面三行是给$p2对象属性赋值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面访问$p2对象中的说话方法
$p2->say();
//下面三行是给$p3对象属性赋值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面访问$p3对象中的说话方法
$p3->say();
?>
Copier après la connexion

Le résultat de sortie est :

我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
Copier après la connexion
Copier après la connexion

Analyser cette méthode :

function say() //这个人可以说话的方法
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
Copier après la connexion

Il existe une méthode say() dans les trois objets $p1, $p2 et $p3, $ cela représente respectivement ces trois objets . Appelez l'attribut
correspondant et imprimez la valeur de l'attribut. C'est ainsi que vous accédez aux attributs de l'objet à l'intérieur de l'objet. Si vous appelez
dans la méthode say(), utilisez run(). également possible. Utilisez $this->run() dans la méthode say() pour terminer l'appel.
8. Méthodes constructeur et destructeur
La plupart des classes ont une méthode spéciale appelée constructeur. Lorsqu'un objet est créé, il appellera automatiquement le constructeur, c'est-à-dire que lorsque le nouveau mot-clé sera utilisé pour instancier l'objet, le constructeur sera automatiquement appelé.
La déclaration d'un constructeur est la même que la déclaration des autres opérations, sauf que son nom doit être __construct(). Il s'agit d'un changement dans PHP5.
Dans les versions précédentes, le nom du constructeur doit être le même que le nom de la classe. Cela peut toujours être utilisé en PHP5, mais maintenant très peu de personnes
l'utilisent. L'avantage est que le constructeur peut être rendu indépendant du nom de la classe. Lorsque le nom de la classe change, il n'est pas nécessaire de changer le
nom du constructeur correspondant. Pour des raisons de compatibilité ascendante, s'il n'y a pas de méthode nommée __construct() dans une classe, PHP recherchera une méthode
dans php4, une méthode constructeur portant le même nom que le nom de la classe.
Format :

function __construct ( [参数] ) { ... ... }
Copier après la connexion
Un seul constructeur peut être déclaré dans une classe, mais le constructeur ne sera appelé qu'une fois à chaque fois qu'un objet est créé

Cela ne peut pas être appelé activement, donc. il est généralement utilisé pour effectuer certaines tâches d'initialisation utiles. Par exemple, les attributs appariés se voient attribuer des valeurs initiales lors de la création du
de l'objet.

<?
//创建一个人类
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}/
/这个人的说话方法
function say()
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person(“张三”,”男”, 20);
$p2=new Person(“李四”,”女”, 30);
$p3=new Person(“王五”,”男”, 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
Copier après la connexion
Le résultat de sortie est :


我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
Copier après la connexion
Copier après la connexion

Destructeur :
L'opposé du constructeur est le destructeur. Le destructeur est un contenu nouvellement ajouté à PHP5. Il n'y a pas de destructeur dans PHP4.
Le destructeur vous permet d'effectuer certaines opérations ou de compléter certaines fonctions avant de détruire une classe, comme fermer des fichiers, publier des jeux de résultats, etc.
Le destructeur supprimera toutes les références à un objet ou Exécuté lorsque l'objet est explicitement détruit, c'est-à-dire que le destructeur est appelé avant que l'objet ne soit détruit
en mémoire. Semblable au nom du constructeur, le nom du destructeur d’une classe doit être __destruct(). La fonction destructeur
ne peut prendre aucun paramètre.
Format :

function __destruct ( ) { ... ... }
Copier après la connexion
<?
//创建一个人类
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}
//这个人的说话方法
function say()
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
//这是一个析构函数,在对象销毁前调用
function __destruct()
{
echo “再见”.$this->name.”<br>”;
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person(“张三”,”男”, 20);
$p2=new Person(“李四”,”女”, 30);
$p3=new Person(“王五”,”男”, 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
Copier après la connexion
Le résultat de sortie est :


我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
再见张三
再见李四
再见王五
Copier après la connexion
Ce qui précède est le contenu du didacticiel orienté objet PHP 4. Pour en savoir plus contenu, veuillez faire attention au site Web PHP chinois (www.php.cn) !



É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