php手动删除变量函数,PHP unset()函数销毁变量_PHP教程
我们在学习
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教程相关推荐
- php函数unset,PHP unset函数 PHP unset函数原理及使用方法解析
想了解PHP unset函数原理及使用方法解析的相关内容吗,小猿笔记在本文为您仔细讲解PHP unset函数的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:PHP,unset函数,下面大家 ...
- php源码十六进制加密,php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制_PHP教程...
php-简单对称加密算法和字符串与十六进制之间的互转函数,php-十六进制 /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param Str ...
- php 年月日 中文,php Date()函数输出中文年月日时分秒_PHP教程
今天我以一个简单的利用date()函数输出中文年月日时分秒引出关于大多数据用户在使用php date()函数的一些问题与date()函数一些参数详解. 当然了,PHP的DATE函数是不可能直接输出中文 ...
- php imagettftext 中文,php的GD库imagettftext函数解决中文乱码问题,_PHP教程
php的GD库imagettftext函数解决中文乱码问题, 本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法.分享给大家供大家参考.具体如下: 使用imagettfte ...
- php fopen函数php,php fopen函数用法(打开创建文件)_PHP教程 - fopen
php教程 fopen函数用法(打开创建文件) 在很多时间我们都需要创建文件特别是生成静态页面的时间,我们在php中就常常会用到fopen这个函数来新建文件,它的原是是如何文件存在就追加,不存在可以创 ...
- php ord函数 中文,php ord 函数与中文乱码解决方法_PHP教程
//a字符 $str=(pack("a*", "中国")); echo $str,"=",strlen($str),"字节n&qu ...
- php unset函数_PHP | 使用unset()函数从数组中删除元素
php unset函数 Given an array and we have to remove an element from the array. 给定一个数组,我们必须从数组中删除一个元素. u ...
- PHP unset()函数销毁变量 但没有实现释放内存
<?PHP $a = "hello";$b = &$a;unset( $b );echo $a; // 输出 helloecho $b; // 报错$b = &quo ...
- php中unset函数是在哪一章_PHP unset函数原理及使用方法解析
unset―释放给定的变量 说明 unset(mixed$var[,mixed$...] ) :void unset()销毁指定的变量. unset()在函数中的行为会依赖于想要销毁的变量的类型而有所 ...
- php session unset,php使用unset()函数删除/释放session变量
使用unset()函数删除单个session变量 源码如下: session_start(); $_SESSION['username'] = "Joe"; echo " ...
最新文章
- 数据结构实验之栈与队列九:行编辑器
- php basic syntax
- java web输出语句到控制台_Java工程师(6).循环结构
- php mssql扩展SQL查询中文字段名解决方法
- 51CTO的企业文化——水文化
- Android 自定义万能的抽屉布局(侧滑菜单)GenericDrawerLayout
- 【文献阅读】MMQA——基于图像、文本和表格的问答(Alon Talmor等人,ICLR,2021)
- Windows 2008 Server搭建Radius服务器
- KEIL工程文件打不开
- java如何设置控制台打印的字体颜色、背景、字体样式(idea设置打印字体样式)工具类 - 附插件方式
- SIGMOD 2021 论文简析:当公交网络连接满足通勤需求时的公共交通规划 Public Transport Planning
- Keil 5(MDK 5)中的 Pack Installer下载不了库文件包的解决替代方法(在Keil官网下载Packs库文件)
- ThinkPad笔记本无法调节亮度
- 泛泰A900 刷4.4专用中文TWRP2.7.1.1版 支持自己主动识别手机版本号(全球首创)...
- 利用JavaFX实现风险中性下股票价格的二叉树模型
- 《听--海的声音》项目
- oracle amp lt是什么东西,在网页设计中amp;amp;nbsp;是什么意思
- 算法设计与分析----棋盘覆盖
- 【概率统计】用正态分布和泊松分布近似表示二项分布
- BMP280使用指南
热门文章
- Atitit 作用域的理解attilax总结 1.1. 作用域是指对某一变量和方法具有访问权限的代码空间,	1 1.2. 作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。	1 1
- Atitit httpclient 概述 rest接口
- Atitit js中的依赖注入di ioc的实现
- Atitit.软件的建模种类and 建模语言选型and UML???
- paip.c++ bcb 字符串String分割split 为 TStringList 不对的的问题解决..
- 真格基金王强:判断一个项目好坏,我会做五个思考!
- Julia: 用Julia操作Redis数据库及一些用法
- 【cherry键盘白送】有人在云上送来一波双十一福利
- 阿里云为自动驾驶量身打造一体化解决方案,助力行业突破技术瓶颈
- 解读畅捷通微服务治理能力提升之路