Loading
0

析构函数的简单的介绍

基本的说明: 文档的说明:

PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行

我们来理解一下上面的话

  • PHP5中引入的一个技术
  • 某个对象的所有引用都被删除
  1. 使用unset(对象名), 将对象名销售
  2. $对象名 = null;
  3. $对象名 = 'abc'
  • 显示销毁

上面写的三种方式,都是显示销毁, 所谓显示销毁就是程序员主动的删除对象引用.

如果程序员不去显示销毁对象,那么在程序执行完毕后,这个对象就会被系统销毁,这个就是系统销毁

  • 析构函数的基本使用
  • 基本语法

class  类名{

   public  function  __destruct(){

    //函数体

   //析构函数的最重要的作用,就是释放对象创建的资源

   //比如 数据库连接, 文件句柄, 绘图句柄..

}

}

说明

  • 析构函数都是public
  • __destuct 是关键字,不要修改
  • 析构函数没有形式参数
  • 析构函数是系统调用
  • 析构函数在如下情况会被系统调用
  1. php文件执行完毕
  2. 某个对象的所有引用都被删除后, 马上就会调用析构函数

快速入门案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
	class Person{	
		public $name;
		//构造函数
		public function __construct($name){
			$this->name = $name;
		}
		//析构函数
		public function __destruct(){
			echo '<br> 析构函数被调用' . $this->name;
		}
	}
	//栈 
	$p1 = new Person('大和尚');
	//显示销毁
	//$pp = $p1;
	$p1 = null;
	$p2 = new Person('小和尚');
	//unset($p2);
	$p3 = new Person('老和尚');
	//$p3 = 'abc';
	echo '<br>-----<br>';
?>
欢迎分享本文,转载请保留出处!—重蔚自留地 站长邮箱:admin@cwhello.com