1、布局方法

布局方法存在于每个声明的类中,紧张浸染是实行一些初始化任务。
如果类中没有直接声明布局方法,那么类会默认地天生一个没有参数且内存为空的布局方法。

在PHP8中,布局方法的方法名称必须是两个下划线开头的,即“__construct”。
详细的语法格式如下:

php析构方法PHP8中的结构办法和析构办法PHP8常识详解 Python

function__construct([mixed args]){//方法的内容}

一个类只能声明一个布局方法。
布局方法中的参数是可选的,如果没有传入参数,那么将利用默认参数对成员变量进行初始化。

定义一个布局方法,参考代码

<?php class Fruit { public $name; //定义成员变量 public $num; //定义成员变量 public function __construct($name, $num) { //定义布局方法 $this->name=$name; //调用本类的成员变量 $this->num=$num; //调用本类的成员变量 } public function showFruit(){ //定义成员方法 if($this->num>300){ return $this->name."的库存充足,不须要进货!
"; }else{ return $this->name. "的库存数量不多了,须要尽快进货!
"; } } } $f1=new Fruit ("橘子",600); //类的实例化并通报参数 echo $f1->showFruit (); //调用方法 echo "<br />"; $f2=new Fruit ("柚子",100); //类的实例化并通报参数 echo $f2->showFruit (); //调用方法?>

以上代码在PHP8中的显示结果如下:

橘子的库存充足,不须要进货!
柚子的库存数量不多了,须要尽快进货!

由此可见,布局方法__construct()在实例化时会自动实行,常日对一些属性进行初始化,也便是对一些属性进行初始化的赋值。

要特殊把稳的是,布局方法不能有返回值(return)。

2、析构方法

析构方法的浸染和布局方法恰好相反。
它是在工具被销毁的时候被调用实行的。
但是由于PHP求的终有资源开释,以是析构方法的意义是有限的。
详细利用的语法格式如下:

function __destruct(){//方法的内容,常日是完成一些工具销毁前的清理任务}

PHP 8具有垃圾回收机制,可以自动打消不再利用的工具,从而开释更多的内存。
析构方法是在垃圾回收程序实行前被调用的方法,是 PHP 8编程中的可选内容。

不过,析构方法在某些特定行为中还是有用的,比如在工具被销毁时清空资源或者记录日志信息。

以下两种情形中,析构方法可能被调用实行。

(1)、代码运行时,当所有的对付某个工具的reference(引用)被毁掉的情形下。

(2)、当代码实行到终极,并且 PHP8 停滞要求的时候。

定义析构方法参考代码:

<?php class Fruit { public $name; //定义成员变量 public $num; //定义成员变量 public function __construct($name,$num){ //定义布局方法 $this->name=$name; //调用本类的成员变量 $this->num=$num; //调用本类的成员变量 } public function showFruit (){ //定义成员方法 if($this->num>600){ return $this->name."的库存充足,不须要进货!
"; }else{ return $this->name."的库存数量不多了,须要尽快进货!
"; } } public function __destruct(){ //定义析构方法 echo "析构函数被调用了,工具Fruit被销毁了!
<br />"; } } $f1=new Fruit("梨",800); //类的实例化并通报参数 $f2=new Fruit("葡萄",100); //类的实例化并通报参数?>

以上代码在PHP8中的运行结果如下:

析构函数被调用了,工具Fruit被销毁了!
析构函数被调用了,工具Fruit被销毁了!

PHP8利用的是一种“社圾回收”机制,能够自动打消不再利用的工具并开释内存,也便是说纵然不该用unset()函数,析构方法也会被自动调用,这里只是明确一下析构方法在何时被调用。
在一样平常情形下是不须要手动创建析构方法的。

到此为止,PHP8中的布局方法和析构方法这两个知识点就讲解完毕了。