1、布局方法
布局方法存在于每个声明的类中,紧张浸染是实行一些初始化任务。如果类中没有直接声明布局方法,那么类会默认地天生一个没有参数且内存为空的布局方法。
在PHP8中,布局方法的方法名称必须是两个下划线开头的,即“__construct”。详细的语法格式如下:
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中的布局方法和析构方法这两个知识点就讲解完毕了。