栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

unset和= null之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unset和= null之间的区别

两种方法之间的重要区别是,它们

unset($a)
$a
从符号表中删除。例如:

$a = str_repeat('hello world ', 100);unset($a);var_dump($a);

输出:

Notice: Undefined variable: a in xxxNULL

但是何时

$a = null
使用:

$a = str_repeat('hello world ', 100);$a = null;var_dump($a);

输出:

NULL

我也通过基准测试运行了代码,发现它

$a = null
unset()
同等程序快大约6%。似乎更新符号表条目比删除它更快。

附录

另一个区别(如该小脚本所示)似乎是每次调用后恢复多少内存:

echo memory_get_usage(), PHP_EOL;$a = str_repeat('hello world ', 100);echo memory_get_usage(), PHP_EOL;// EITHER unset($a); OR $a = null;echo memory_get_usage(), PHP_EOL;

在使用时,

unset()
除64个字节的内存外,其他
$a =null;
所有内存均被返还,而272个字节的内存则全部释放。我没有足够的知识来知道为什么两种方法之间都存在208字节的差异,但是仍然存在差异。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484030.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号