黑马程序员技术交流社区
标题:
一帖搞懂PHP的各种销毁(unset,null,php自释放,析构函数)
[打印本页]
作者:
huawei
时间:
2016-10-14 12:06
标题:
一帖搞懂PHP的各种销毁(unset,null,php自释放,析构函数)
本帖最后由 huawei 于 2017-3-5 10:55 编辑
PHP的变量或对象的销毁如果说一定要分类,那么可以分成两种那就是显式销毁和隐式销毁
1、显式
销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL;
2、隐式
销毁,PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉.
从上面两种销毁方式中,我们可以总结出销毁的三种方法:那就是1、unset(),2
、$varname=null,
3、PHP自销毁,我们还要加上一个,那就是4、析构函数
__destruct()
。
作为小白的我们能搞明白上面四种变量或对象的销毁吗?如果不能搞明白,我们就举出一个例子给大家,方便大家理解。
<?php
class Human {
public $name = '张三';
public $gender = null;
public function __destruct() {
echo '死了!<br />';
}
}
$a = new Human();
$b = $c = $d = $a;
unset($a);
$d=null;
echo '<hr />';
var_dump($a);
echo '<hr />';
var_dump($b);
echo '<hr />';
var_dump($c);
echo '<hr />';
var_dump($d);
那以上变量打印出的结果是什么呢?就是下面这部分:
首先我们要知道,在PHP中,变量名是存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存; 因此我们可以得出结论:
精华推荐:
2017最新PHP学习路线图(附完整视频资源)+源码+技巧/经验+求职+前景总结!
连续两班仅6日就业率突破53%,看2016PHP课程升级是否成功!
视频集合:众多老学员呐喊:"为什么我选传智PHP"!
作者:
蓝光四号
时间:
2016-10-15 07:52
不错,mark
作者:
剑客星辰
时间:
2017-4-30 10:35
11111111111111
作者:
踏上PHP征程
时间:
2017-5-19 22:57
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2