Maison > Article > développement back-end > Vous permet de distinguer le constructeur et le destructeur dans une classe
Dans l'article précédent, je vous ai présenté "Comment instancier des objets et accéder aux membres des objets en PHP ?" ", qui présente en détail comment instancier des objets et accéder aux membres des objets. Dans cet article, nous examinerons les constructeurs et les destructeurs en PHP. J'espère que cela sera utile à tout le monde !
Le constructeur d'une classe PHP est également appelé constructeur Lorsqu'un objet est instancié à l'aide du mot-clé new, il peut être automatiquement appelé lors de la création de l'objet. La fonction correspondante est le destructeur. Le rôle du destructeur est exactement le contraire de celui du constructeur. Le destructeur peut effectuer des opérations avant que l'objet ne soit détruit. Examinons ensuite ces deux fonctions ensemble.
<strong><span style="font-size: 20px;">__construct()</span></strong>
: Constructeur/Méthode<strong><span style="font-size: 20px;">__construct()</span></strong>
:构造函数/方法
在PHP的类中,我们使用__construct()
作为类的构造函数,构造函数是当对象被创建时,类中被自动调用的第一个函数,并且一个类中只能存在一个构造函数,并且需要注意的是,如果构造函数中有参数的话,那么实例化也需要传入对应的参数。
构造函数创建的语法格式如下:
public function __construct(参数列表){ ... ... }
需要注意的是,其中的参数列表是可选的,不需要的时候可以省略。construct前面是两个下划线__
。
实例如下:
<?php class study{ public $study1, $study2, $study3,$study4; public function __construct($str1, $str2, $str3,$str4){ $this -> study1 = $str1; $this -> study2 = $str2; $this -> study3 = $str3; $this -> study4 = $str4; $this -> demo(); } public function demo(){ echo $this -> study1.'<br>'; echo $this -> study2.'<br>'; echo $this -> study3.'<br>'; echo $this -> study4.'<br>'; } } $object = new study('好好学习','天天向上','福如东海','寿比南山'); ?>
示例中的$this表示当前调用的对象。输出结果:
由上述结果,我们通过,我们通过__construct()
构造函数,就调用了类中创建的对象。
<strong><span style="font-size: 20px;">__destruct()</span></strong>
:析构函数/方法
刚才讲到的__construct()
构造函数,它会在对象被创建的时候调用,与之相对应的就是析构函数,析构函数的作用与构造函数相反,析构函数只有当对象从内存中删除之前才会被自动调用,在PHP中有垃圾回收机制,当对象不能被访问就会自动启动垃圾回收机制,析构函数就是垃圾回收对象前调用。
__destruct()
函数的语法格式如下:
public function __destruct(){ ... ... }
需要注意的是,与构造函数类似,destruct前面也是两个下划线__
;不同的是析构函数不能带有任何参数。
实例如下:
<?php class Website{ public $study1, $study2; public function __construct(){ echo '构造函数被调用了<br>'; } public function __destruct(){ echo '析构函数被调用了<br>'; } } $object = new Website(); echo '好好学习<br>'; echo '天天向上<br>'; ?>
输出结果:
由上述实例可以看出,构造函数与析构函数调用的时间不同,构造函数在对象被创建时自动调用,析构函数在对象被垃圾收集器收集前被调用。
<strong><span style="font-size: 20px;">$this</span></strong>
:当前对象
在PHP面对对象编程中,对象被创建之后,在对象中的每个成员方法里,都会存在一个特殊的对象引用“$this
”,与连接符->
__construct()
comme constructeur de la classe. Le constructeur est lorsque l'objet est créé. Le premier fonction qui est automatiquement appelée dans une classe, et il ne peut y avoir qu'un seul constructeur dans une classe. Il convient de noter que s'il y a des paramètres dans le constructeur, les paramètres correspondants doivent également être transmis pour l'instanciation.
Le format de syntaxe créé par le constructeur est le suivant :
$this -> 成员属性; $this -> 成员方法(参数列表);Il convient de noter que la liste des paramètres est facultative et peut être omise lorsqu'elle n'est pas nécessaire. construct est précédé de deux traits de soulignement
__
. L'exemple est le suivant : <?php class Website{ public $name; public function __construct($name){ $this -> name = $name; $this -> name(); } public function name(){ echo $this -> name; } } $object = new Website('好好学习'); ?>$this dans l'exemple représente l'objet actuellement appelé. Résultat de sortie :
Sur la base des résultats ci-dessus, nous avons passé le constructeur __construct()
pour appeler l'objet créé dans la classe.
<strong><span style="max-width:90%">__destruct()</span></strong>
: Destructeur/Méthode🎜🎜Le constructeur __construct()
qui vient d'être mentionné sera appelé lors de la création de l'objet, correspondant à C'est le destructeur. Le rôle du Le destructeur est opposé à celui du constructeur.Le destructeur ne sera pas automatiquement appelé tant que l'objet n'est pas supprimé de la mémoire.Il existe un mécanisme de récupération de place en PHP.Lorsque l'objet n'est pas accessible, le mécanisme de recyclage est automatiquement lancé. , le destructeur est appelé avant le garbage collection des objets. 🎜🎜🎜__destruct()
Le format de syntaxe de la fonction est le suivant : 🎜rrreee🎜Il est à noter que, comme le constructeur, destruct est également précédé de deux traits de soulignement __ code> ; la différence est que le destructeur ne peut prendre aucun paramètre. 🎜🎜🎜L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜<img src="https://img.php.cn/upload/image/227/432/988/1635127650312688.png" title=" 1635127650312688.png " alt="Vous permet de distinguer le constructeur et le destructeur dans une classe">🎜🎜Comme le montrent les exemples ci-dessus, le constructeur et le destructeur sont appelés à des moments différents. Le constructeur est automatiquement appelé lors de la création de l'objet, et le destructeur est appelé lorsque l'objet est collecté par le garbage collector a été appelé auparavant. 🎜🎜<code><strong><span style="max-width:90%">$this</span></strong>
: Objet actuel🎜🎜Dans la programmation orientée objet PHP, une fois l'objet créé, il y aura une référence d'objet spéciale "$this" dans chaque méthode membre de l'objet code>", utilisé conjointement avec le connecteur ->
, spécifiquement utilisé pour compléter l'accès entre les membres internes de l'objet. Un exemple est le suivant : 🎜rrreee🎜Lorsque nous accédons à un attribut membre dans une classe, il suffit de suivre le nom de l'attribut. Il n'est pas nécessaire d'ajouter le signe $$this ne peut être utilisé que dans les objets sans objet. , il n'y a pas de $this. 🎜🎜L'exemple est le suivant : 🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜Si vous êtes intéressé, vous pouvez cliquer sur "🎜Tutoriel vidéo PHP🎜" pour en savoir plus sur les connaissances 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!