PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 |
1.析构函数
理解析构函数:
1.1 php5 引用的技术;
1.2 某个对象的引用都被删除
(1):使用unset(对象名),将对象删除;
(2): $对象名 = null;
(3): $对象名 = ‘abc’;
1.3 显示销毁
上面的三种方式,都是显示销毁,所有的销毁方式都是程序员主动调用销毁;
如果程序员不去显示销毁对象,那么在程序执行完成后系统将会自动销毁对象,这样的方式就是隐式销毁;
1.4 析构函数的作用就是释放对象创建资源(数据库链接,文件句柄,绘图句柄);
1.5 快速入门
2.说明
2.1 析构函数修饰符都是public
2.2 __destuct是关键字 不能修改;
2.3 析构函数没有形参
2.4 析构函数是系统调用;
2.5析构函数在什么情况下会被系统调用
1) php 文件执行完的时候;
2) 某个文件被删除的时候;
<?php
header("content-type:text/html;charset=utf-8");
class Animal{
public $name;
public $age;
public $content;
public function __construct($name,$age,$content){
$this->name=$name;
$this->age=$age;
$this->content=$content;
}
public function skill(){
echo $this->name."在唱".$this->content;
}
public function __destruct(){
echo $this->content .'...卸载<br>';
}
}
###
###
### 先销毁的是$cat 对象 在销毁的是$dog; 涉及的是栈 先进后出
$dog = new Animal("小狗","3","汪汪汪");
$dog->skill();
echo "<hr>";
$cat = new Animal("小猫","1","喵喵喵");
$cat->skill();
echo "<hr>";