<?php
class test{
var $name;
var $sex;
var $age; function __construct( $name, $sex ,$age )
{
$this->name = $name;
$this->sex = $sex;
$this->age = $age;
} function __destruct()
{
echo "再见".$this->name.'<br>';
}
} $person1 = new test('张三','男',2000);
$person1 =null;
$person2 =new test('lisi','32',3232);
$person3 =new test('wangwu','2323232',222);

这是在网页中显示出来的结果

再见张三
再见wangwu
再见lisi

对象都是在页面执行结束后失去引用。

上面的类中 有析构方法  __destruct  当程序运行到这的时候 会输出信息。对象的引用一旦失去作用 ,垃圾回收机制就会自动启用并回收对象所占用的内存,再回收垃圾对象占用的内存之前会自动调用析构方法。输出信息。

这个类所产生的结果都是调用析构方法所产生的信息。 当$person1 被赋值后又被赋值为空。所以呢第一个对象被释放 执行析构方法 输出“张三”

当$person2  and  $person3 是在页面执行完毕后失去引用从而调用析构方法。但是对象的引用都是存放在栈内存中  ,这里就的了解栈的知识。(先进后出的原理)所以是  lisi  先进 wangwu后进  导致了 出的时候是wangwu先出 lisi再出。才会出现上述结果

当$person1 实例化类的时候 。会吧这个

php析构方法关于栈的问题的更多相关文章

  1. php构造方法与析构方法

    1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...

  2. 【M11】禁止异常流出析构方法之外

    1.在两种情况下,调用析构方法:a.在正常状态下被销毁,栈上的对象离开作用域或者堆上的对象执行delete:b.抛出异常,堆栈回滚,栈上已经构造好的对象,也就是抛出异常之前的代码,自动调用析构方法.注 ...

  3. C++ 析构方法

    1.什么是析构方法? 析构方法与构造方法互补. 2.为什么设计析构方法? 构造方法创建一个对象,对象内部往往还会申请一些资源.设计析构方法的目的是 释放资源,同时销毁自身. 3.析构方法可以认为分为两 ...

  4. PHP面向对象的构造方法与析构方法

    构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因.而析构方法时对象在销毁之前最后一个被对象自 ...

  5. 3.JAVA-方法重载,类的封装,构造/析构方法

    1.方法重载 和C++的函数重载一样,主要是实现多个相同的函数名,但是参数表不同. 参数表不同主要有以下几种 1) 参数个数不同 2) 参数类型不同 3) 参数顺序不同 2.类和对象 类class 用 ...

  6. C#资源释放及Dispose、Close和析构方法

    https://www.cnblogs.com/luminji/archive/2011/01/05/1926468.html C#资源释放及Dispose.Close和析构方法   备注:此文的部分 ...

  7. PHP类(二)-类的构造方法和析构方法

    构造方法 构造方法是对象创建完成后第一个被对象自动调用的方法,用来完成对象的初始化 在每个类中都会有一个构造方法,如果没有声明的话,类中会存在一个没有参数列表并且内容为空的构造方法.如果声明的话,默认 ...

  8. php课程 12-38 php的类的构造方法和析构方法怎么写

    php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...

  9. 【Swift学习】Swift编程之旅---析构方法(十九)

    在一个类的实例内存被释放之前,析构方法被立即调用.使用deinit关键字来声明析构方法,类似于构造方法用init来声明.析构方法只适用于类类型.   析构方法原理 Swift会自动释放不再需要的实例以 ...

随机推荐

  1. 如何突破 Java 程序员的分水岭

    第一阶段:一年之内的 JAVA 从业人员 这个阶段是你成长极快的阶段,而且你可能会经常加班.但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习.在这一年里,你至少需 ...

  2. python 环境变量设置

    Win+E --> 我的电脑 --> 右击 选择属性 --> 高级系统设置 --> 环境变量 --> 用户变量 中 找到 PATH(Path) --> 编辑 --& ...

  3. xcode加载静态链接库.a文件总是失败

    明明项目是对的,代码没有问题,并且把项目作为库项目引入到新项目中没问题,可是一旦把项目编译出.a文件,引入到新项目中不知为何会有几率出现一大堆错误,其实是xcode的缓存机制在作怪,去这个目录: /U ...

  4. HihoCoder 1044 01-string 贪心

    1144 : 01串 时间限制:7000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001& ...

  5. Yii登录验证和全局访问用户ID

    注意:Yii默认的代码,Yii::app()->user->id返回的不是我们想要的用户ID,而是用户名.因此在useridentity类中要用一个变量来存储登录用户的ID,然后重载get ...

  6. 解决----Word无法创建工作文件,请检查临时环境变量

    用户在运行Word2003或打开Word2003文档时,可能会出现“Word无法创建工作文件,请检查临时环境变量”的错误提示,此问题主要是由于Word2003的用户设置出现损坏而造成的.网上针对此问题 ...

  7. linux 目标文件 bss,data,text,rodata,堆,栈***

    linux目标文件 一个简单的程序被编译成目标文件后的结构如下: 从图可以看出,已初始化的全局变量和局部静态变量保存在 .data段中,未初始化的全局变量和未初始化的局部静态变量保存在 .bss段中. ...

  8. FTP for win7

    In Windows 7, you can share files on home network easily using Home Group but creating an FTP server ...

  9. module_param 用于动态开启/关闭 驱动打印信息

    1.定义模块参数的方法: module_param(name, type, perm); 其中,name:表示参数的名字;      type:表示参数的类型;      perm:表示参数的访问权限 ...

  10. 安装Visual C ++进行跨平台移动开发

    Visual Studio 2015   Visual Studio文档的新家是docs.microsoft.com上的Visual Studio 2017文档 . 有关Visual Studio 2 ...