第二十一回、PHP基础教程,析构函数

能够对对象进行自动释放和调用的函数,我们称之为析构函数。在PHP5中正式支持析构函数,我们称之为垃圾回收机制——使用__destruct()函数(注意前面是两个下划线)。

当对象的操作执行完毕时,该函数将会被自动调用,这样以来,对象所使用的内存就被释放。它有一个规则:先进后出。

阶段举例:

例1:创建多个对象并引用对象中的方法和修改属性

<?php

class myClass

{

public $key;

public $name;

function vod()

{

return $this->name.”,PHP高级编程进阶”;

}

function game()

{

return $this->name.”,玩游戏”;

}

function net()

{

return $this->name.”,上网”;

}

}

$my1=new myClass();

$my2=new myClass();

$my1->name=”家用电脑”;

$my2->name=”游戏电脑”;

echo $my1->vod().”<br>”;

echo $my2->game().”<br>”;

?>

输出:家用电脑,PHP高级编程进阶

游戏电脑,玩游戏

例2:对象的初始化

<?php

class myClass

{

public $type;

public $name;

function __construct($name=””,$type=””)

{

$this->name=$name;

$this->type=$type;

}

function vod()

{

return $this->name.”,”.$this->type.”,PHP高级编程进阶”;

}

function game()

{

return $this->vod();

}

}

$my1=new myClass(“家用电脑”,”台式机”);

//第一个参数传递给初始化中的第一个变量,第二参数传递给第二个变量

$my2=new myClass(“游戏电脑”,”笔记本”);

echo $my1->vod().”<br>”;

echo $my2->game().”<br>”;

?>

输出:家用电脑,台式机,PHP高级编程进阶

游戏电脑,笔记本,PHP高级编程进阶

例3:析构函数的应用(对象使用过后自动释放占用的内存)

<?php

class myClass

{

public $type;

public $name;

function __construct($name=””,$type=””)

{

$this->name=$name;

$this->type=$type;

}

function vod()

{

return $this->name.”,”.$this->type.”,PHP高级编程进阶”;

}

function game()

{

return $this->vod();

}

function __destruct()

{

echo ‘$this->name:’.$this->name;

//在这里列出了要释放的name的值”;

//为了能够看到释放的结果,在这里加了这一句输出语句

}

}

$my1=new myClass(“家用电脑”,”台式机”);

//第一个参数传递给初始化中的第一个变量,第二参数传递给第二个变量

$my2=new myClass(“游戏电脑”,”笔记本”);

echo $my1->vod().”<br>”;

//$my1=NULL;

如果想要将对象使用之后立即释放它所占用的内存可以使用这条语句

echo $my2->game().”<br>”;

?>