php析构方法关于栈的问题
2016-02-23 12:32
477 查看
<?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 实例化类的时候 。会吧这个
相关文章推荐
- PHPExcel一些常用方法02
- php 常用函数(一)
- PHPExcel一些常用方法01
- phpstorm xdebug调试器的安装和使用
- SMTP服务使用
- MDK编译错误 --bin --output
- 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
- thinkphp url重写规则及wamp配置
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(一)用ffmpeg解码视频
- 安装php 找不到lib.so包原因分析
- php分享二十二:php面向对象
- Jenkins进阶系列之——05FTP publisher plugin插件
- Jenkins进阶系列之——04Publish Over FTP Plugin插件
- Yii2中request的使用
- php中常用的处理字符串的函数
- eerTyraniBfohtpeDmuminiM.111
- phpstorm的第一个程序:helloworld
- PHP基于数组的分页函数(核心函数array_slice())
- 尝试phpStorm编程
- FTP