我们在学习

PHP unset()函数是用来销毁变量的,但很多时候,这个函数只把变量给销毁了,内存中存放的该变量的值仍然没有销毁,也就是没能达到我们想要的释放内存的效果。这里我建议大家用 $变量=null 的方法来释放其内存。原因看了下面的就知道了。

以下是关于PHP unset()函数的几点要点:(以下均在windows环境下测试,php 2.5.9)

1. 该函数只有在变量值所占空间超过256字节长的时候才会释放内存

2. 只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放(也要执行1的判断)

下面给出例子代码论证:<?php

$test=str_repeat("1",256);

$s=memory_get_usage();

//改函数用来查看当前所用内存

unset($test);

$e=memory_get_usage();

echo ' 释放内存: '.($s-$e);

//输出为272,但如果上面test变量改为

$test=str_repeat("1",255),输出则为0

?>

至于为什么是272而不是256,就不是很清楚了,不知道内部是怎么处理的。<?php

$test=str_repeat("1",256);

$p= &$test;

unset($test);

echo $p;

//输出为256个1。如果上面改为unset($p)

,更不行了,echo $test 直接显示为256个1

?>

也就是说内存中赋给$a的值仍然存在。可见unset()并没达到释放内存的效果。

但如果在上述代码中加入$test=null,或者再加一个unset($p),就能达到释放内存效果了,PHP unset()函数测试代码如下:

变量赋值为null方法:<?php

$test=str_repeat("1",256);

$p= &$test;

$s=memory_get_usage();

$test=null;

unset($test);

$e=memory_get_usage();

echo ' 释放内存: '.($s-$e);

//输出为272

var_dump($p); //输出为NULL

?>

将指向该地址中值的变量全部销毁的方法:<?php

$test=str_repeat("1",256);

$p= &$test;

$s=memory_get_usage();

//注意,以下2个unset()顺序对调没

有关系,不影响结果

unset($p);

unset($test);

$e=memory_get_usage();

echo ' 释放内存: '.($s-$e); //输出为272

?>

到此PHP unset()函数论证完毕。

http://www.bkjia.com/PHPjc/445987.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445987.htmlTechArticle我们在学习 PHP unset()函数是用来销毁变量的,但很多时候,这个函数只把变量给销毁了,内存中存放的该变量的值仍然没有销毁,也就是没...

php手动删除变量函数,PHP unset()函数销毁变量_PHP教程相关推荐

  1. php函数unset,PHP unset函数 PHP unset函数原理及使用方法解析

    想了解PHP unset函数原理及使用方法解析的相关内容吗,小猿笔记在本文为您仔细讲解PHP unset函数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:PHP,unset函数,下面大家 ...

  2. php源码十六进制加密,php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制_PHP教程...

    php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制 /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param Str ...

  3. php 年月日 中文,php Date()函数输出中文年月日时分秒_PHP教程

    今天我以一个简单的利用date()函数输出中文年月日时分秒引出关于大多数据用户在使用php date()函数的一些问题与date()函数一些参数详解. 当然了,PHP的DATE函数是不可能直接输出中文 ...

  4. php imagettftext 中文,php的GD库imagettftext函数解决中文乱码问题,_PHP教程

    php的GD库imagettftext函数解决中文乱码问题, 本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法.分享给大家供大家参考.具体如下: 使用imagettfte ...

  5. php fopen函数php,php fopen函数用法(打开创建文件)_PHP教程 - fopen

    php教程 fopen函数用法(打开创建文件) 在很多时间我们都需要创建文件特别是生成静态页面的时间,我们在php中就常常会用到fopen这个函数来新建文件,它的原是是如何文件存在就追加,不存在可以创 ...

  6. php ord函数 中文,php ord 函数与中文乱码解决方法_PHP教程

    //a字符 $str=(pack("a*", "中国")); echo $str,"=",strlen($str),"字节n&qu ...

  7. php unset函数_PHP | 使用unset()函数从数组中删除元素

    php unset函数 Given an array and we have to remove an element from the array. 给定一个数组,我们必须从数组中删除一个元素. u ...

  8. PHP unset()函数销毁变量 但没有实现释放内存

    <?PHP $a = "hello";$b = &$a;unset( $b );echo $a; // 输出 helloecho $b; // 报错$b = &quo ...

  9. php中unset函数是在哪一章_PHP unset函数原理及使用方法解析

    unset―释放给定的变量 说明 unset(mixed$var[,mixed$...] ) :void unset()销毁指定的变量. unset()在函数中的行为会依赖于想要销毁的变量的类型而有所 ...

  10. php session unset,php使用unset()函数删除/释放session变量

    使用unset()函数删除单个session变量 源码如下: session_start(); $_SESSION['username'] = "Joe"; echo " ...

最新文章

  1. 数据结构实验之栈与队列九:行编辑器
  2. php basic syntax
  3. java web输出语句到控制台_Java工程师(6).循环结构
  4. php mssql扩展SQL查询中文字段名解决方法
  5. 51CTO的企业文化——水文化
  6. Android 自定义万能的抽屉布局(侧滑菜单)GenericDrawerLayout
  7. 【文献阅读】MMQA——基于图像、文本和表格的问答(Alon Talmor等人,ICLR,2021)
  8. Windows 2008 Server搭建Radius服务器
  9. KEIL工程文件打不开
  10. java如何设置控制台打印的字体颜色、背景、字体样式(idea设置打印字体样式)工具类 - 附插件方式
  11. SIGMOD 2021 论文简析:当公交网络连接满足通勤需求时的公共交通规划 Public Transport Planning
  12. Keil 5(MDK 5)中的 Pack Installer下载不了库文件包的解决替代方法(在Keil官网下载Packs库文件)
  13. ThinkPad笔记本无法调节亮度
  14. 泛泰A900 刷4.4专用中文TWRP2.7.1.1版 支持自己主动识别手机版本号(全球首创)...
  15. 利用JavaFX实现风险中性下股票价格的二叉树模型
  16. 《听--海的声音》项目
  17. oracle amp lt是什么东西,在网页设计中amp;amp;nbsp;是什么意思
  18. 算法设计与分析----棋盘覆盖
  19. 【概率统计】用正态分布和泊松分布近似表示二项分布
  20. BMP280使用指南

热门文章

  1. Atitit 作用域的理解attilax总结 1.1. 作用域是指对某一变量和方法具有访问权限的代码空间, 1 1.2. 作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。 1 1
  2. Atitit httpclient 概述  rest接口
  3. Atitit js中的依赖注入di ioc的实现
  4. Atitit.软件的建模种类and 建模语言选型and UML???
  5. paip.c++ bcb 字符串String分割split 为 TStringList 不对的的问题解决..
  6. 真格基金王强:判断一个项目好坏,我会做五个思考!
  7. Julia: 用Julia操作Redis数据库及一些用法
  8. 【cherry键盘白送】有人在云上送来一波双十一福利
  9. 阿里云为自动驾驶量身打造一体化解决方案,助力行业突破技术瓶颈
  10. 解读畅捷通微服务治理能力提升之路