PHP对象销毁方式
来源:互联网 发布:苹果6忽略网络怎么恢复 编辑:程序博客网 时间:2024/06/06 03:30
析构函数:对象销毁时执行;注意在隐式销毁中是在是所有php代码执行完最后一行代码的时候才销毁
对象的销毁:
- 显试销毁: 当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL;
- 隐试销毁:PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉.
<?phpclass Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); echo $b->name; //输出张三echo '<hr />'; //先输出换行线再输出走了 析构函数是在线上触发还是线下触发??>
答案:
$b =$c = $d = $a;默认引用传值,四个变量指向同一处内存,unset的时候对象还是被其它三个变量使用,所以对象并没有被销毁,所以析构函数是在线下触发的(代码执行完了,内存自动释放)
Example2:
<?phpclass Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $e = $f = $g = new Human(); unset($e); unset($f); unset($g); echo '<hr />'; //同样的问题: 析构函数是在线上触发还是线下触发??>
在代码运行完自动释放内存之前由于对象已经没有被任何变量引用所以就自动释放了内存....答案是在线上触发
阅读全文
0 0
- PHP对象销毁方式
- PHP中的对象销毁
- php销毁对象
- [php]对象的销毁时机
- Unity3D中销毁对象的方式
- PHP session的销毁是三种方式
- php变量和对象销毁问题
- C#中对象的销毁和内存回收的方式
- Java创建和销毁对象的几种方式
- 数据销毁方式探讨
- TN017:销毁窗口对象
- 对象实例销毁
- 如何销毁对象
- C++对象与销毁
- __unset销毁对象
- 对象的销毁原则
- 创建和销毁对象
- 对象的销毁
- 3、Java的If语句与For循环
- 今天测试2款zec挖矿软件,长沙矿工 VS Claymore's ZCash AMD GPU Mine 到底哪个好,哪个收益高(二)
- Ubuntu 14.04 LTS 下降级到4.7 and 升级 gcc 到 gcc-4.9、gcc-5 版本
- 安装VS2010
- 1001. 会议安排
- PHP对象销毁方式
- C++:wchar_t 和C++新增类型:char16_t char32_t
- 面试题31—连续子数组的最大和
- oracle存储过程学习
- 【matlab】运动目标检测之"背景差分算法“(转载)
- solr6.6 添加IK分词
- 当ListView有Header时,onItemClick里的position不正确
- 关于强制修改postgreSQL的密码(密码忘记)的方法
- Android Studio Eclipse工程导入 | 配置 (个人笔记)