-
- class person{
- public function __destruct() {
- echo "
析构函数在这里执行";
- echo "
这里一般用来放置,关闭数据库,关闭文件等等收尾工作。";
- }
- }
- $p = new person();
- for ($i = 0; $i < 5; $i ) {
- echo "
$i";
- }
- //在php程序结束前,对象被销毁了。
- ?>
-
复制代码
当对象没有指向时,对象被销毁。
-
-
- class person {
- public function __destruct() {
- echo "
析构函数在这里执行";
- echo "
这里一般用来放置,关闭数据库,关闭文件等等收尾工作。";
- }
- }
- $p = new person();
- $p = null;
- //我们在这里看到,析构函数在这里被执行了。
- for ($i = 0; $i < 5; $i ) {
- echo "
$i";
- }
- ?>
-
复制代码
将$p设置为空或者第11行赋予$p一个字符串,这样$p之前指向的对象就成为了垃圾对象。
php将这个对象垃圾销毁。
unset变量
-
-
- class person {
- public function __destruct() {
- echo "
析构函数在这里执行 ";
- }
- }
- $p = new person();
- $p1 = $p; //设定新引用变量$p1也指向这个对象
- unset($p);
- echo "是否看到/$p被销毁,对象也被销毁呢?";
- for ($i = 0; $i < 5; $i ) {
- echo "
$i";
- }
- unset($p1);
- echo "我们看到这里,析构函数被执行了";
- ?>
-
复制代码
unset一个引用变量时,unset 销毁的是指向对象的变量,而不是这个对象。
|