为什么实例化对象析构函数会被调用

来源:2-5 PHP类和对象之构造函数和析构函数

qq_云上_0

2017-05-25 17:31

<?php

class Car {

    //增加构造函数与析构函数

    function __construct(){

        print '父类构造函数被调用 \n';

    }

    function __destruct(){

        print '析构函数被调用 \n';

        

    }

}

$car = new Car();  //实例化时会调用构造函数


写回答 关注

2回答

  • GreyJoker
    2017-06-14 12:52:00
    <?php
    class Car {
        //增加构造函数与析构函数
        public $name = 'fff';
    function __construct() {
           print "构造函数被调用 \n";
       }
    function __destruct() {
           print "析构函数被调用 \n";
    }
    }
    $car = new Car();
    echo $car->name;
    echo '<br />';

    当PHP代码执行完毕以后,会自动回收与销毁对象

    这样你应该能明白

  • 信达雅
    2017-05-25 17:50:06

    如果你在$car = new Car();后面打上echo “hello”;

    你会发现浏览器打印的是  构造  hello  析构 

    为什么不是 构造 析构 hello?

    原因是php页面执行完请求后,内存中就销毁它了,同时这个页面创造的对象就会被销毁

    对象被销毁,不就自动调用析构函数了?


PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181730 学习 · 2575 问题

查看课程

相似问题