php面向对象构造函数、析构函数的作用

  • 1,975

一个对象创建时,如果调用结束后,将执行析构函数,图中代码一共创建了三个对象,每创建一次就销毁一次。

<?php
   class Stu{
        public function __construct(){
            echo "我来了===============<br/>";
        }
        public function __destruct(){
            echo "我走了*****************<br/>";
        }
   }
$stu1 = new Stu();
//unset($stu1);
$stu2 = new Stu();

?>

没有unset是:

  • 我来了===============
  • 我来了===============
  • 我走了*****************
  • 我走了*****************

unset后:

  • 我来了===============
  • 我走了*****************
  • 我来了===============
  • 我走了*****************

注意:我走了的顺序

<?php
//php面向对象之析构函数

class Human {

    public $name = '张三';
    public $gender = null;
    
    public function __destruct() {
        echo '死了!<br />';
    }

}


$e = $f = $g = new Human();
unset($e);
echo 'unset e<br />';

unset($f);
echo 'unset f<br />';

unset($g);
echo 'unset g<br />';

/*
$g/$f/$e  同时指向object,如果把$e/$f分别都unset掉,object并未销毁。除非把最后一个变量也销毁掉,或者程序运行完毕。自动销毁,对象才会被销毁!
unset e
unset f
死了
unset g;
*/

 

历史上的今天
6月
21
weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年6月21日12:47:40
  • 转载请务必保留本文链接:https://www.150643.com/91.html
匿名

发表评论

匿名网友 填写信息

评论:3   其中:访客  3   博主  0
    • 小天 小天 0

      感谢分享,果断拿走! :evil:

        • 开拓者博主 开拓者博主

          @ 小天 有用就好!

        • 匿名者 匿名者 0

          构造函数跟析构函数分析的非常细,之前一直不明白什么是析构函数!受教了。。。