网站运营内容,太原的网站建设公司哪家好,wordpress替换成自己的php项目,手机商城建站系统网站建设今日分享的内容是php8中的构造方法和析构方法#xff0c;我们把构造方法和析构方法这两个方法分开来讲#xff1a; 1、构造方法
构造方法存在于每个声明的类中#xff0c;主要作用是执行一些初始化任务。如果类中没有直接声明构造方法#xff0c;那么类会默认地生成一个没…今日分享的内容是php8中的构造方法和析构方法我们把构造方法和析构方法这两个方法分开来讲 1、构造方法
构造方法存在于每个声明的类中主要作用是执行一些初始化任务。如果类中没有直接声明构造方法那么类会默认地生成一个没有参数且内存为空的构造方法。
在PHP8中构造方法的方法名称必须是两个下划线开头的即“__construct”。具体的语法格式如下
function__construct([mixed args]){
//方法的内容
}
一个类只能声明一个构造方法。构造方法中的参数是可选的如果没有传入参数那么将使用默认参数对成员变量进行初始化。
定义一个构造方法参考代码
?phpclass Fruit {public $name; //定义成员变量public $num; //定义成员变量public function __construct($name, $num) { //定义构造方法$this-name$name; //调用本类的成员变量$this-num$num; //调用本类的成员变量}public function showFruit(){ //定义成员方法if($this-num300){return $this-name.的库存充足不需要进货;}else{return $this-name. 的库存数量不多了需要尽快进货;}}}$f1new Fruit (橘子,600); //类的实例化并传递参数echo $f1-showFruit (); //调用方法echo br /; $f2new Fruit (柚子,100); //类的实例化并传递参数echo $f2-showFruit (); //调用方法
?以上代码在PHP8中的显示结果如下
橘子的库存充足不需要进货
柚子的库存数量不多了需要尽快进货由此可见构造方法__construct()在实例化时会自动执行通常对一些属性进行初始化也就是对一些属性进行初始化的赋值。
要特别注意的是构造方法不能有返回值return。
2、析构方法
析构方法的作用和构造方法正好相反。它是在对象被销毁的时候被调用执行的。但是因为PHP求的终有资源释放所以析构方法的意义是有限的。具体使用的语法格式如下:
function __destruct(){
//方法的内容,通常是完成一些对象销毁前的清理任务
}
PHP 8具有垃圾回收机制可以自动清除不再使用的对象从而释放更多的内存。析构方法是在垃圾回收程序执行前被调用的方法是 PHP 8编程中的可选内容。
不过析构方法在某些特定行为中还是有用的比如在对象被销毁时清空资源或者记录日志信息。
以下两种情况中析构方法可能被调用执行。
(1)、代码运行时当所有的对于某个对象的reference(引用)被毁掉的情况下。
(2)、当代码执行到最终并且 PHP8 停止请求的时候。
定义析构方法参考代码
?phpclass Fruit {public $name; //定义成员变量public $num; //定义成员变量public function __construct($name,$num){ //定义构造方法$this-name$name; //调用本类的成员变量$this-num$num; //调用本类的成员变量}public function showFruit (){ //定义成员方法if($this-num600){return $this-name.的库存充足不需要进货;}else{return $this-name.的库存数量不多了需要尽快进货;}}public function __destruct(){ //定义析构方法echo 析构函数被调用了对象Fruit被销毁了br /;}}$f1new Fruit(梨,800); //类的实例化并传递参数$f2new Fruit(葡萄,100); //类的实例化并传递参数
?
以上代码在PHP8中的运行结果如下
析构函数被调用了对象Fruit被销毁了
析构函数被调用了对象Fruit被销毁了PHP8使用的是一种“社圾回收”机制能够自动清除不再使用的对象并释放内存也就是说即使不使用unset()函数析构方法也会被自动调用这里只是明确一下析构方法在何时被调用。在一般情况下是不需要手动创建析构方法的。
到此为止PHP8中的构造方法和析构方法这两个知识点就讲解完毕了。