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 " ...
最新文章
- (传送门)android绘图canvas.clipRect()方法的作用
- 初等数论--整除--两数乘积保持整除性
- 中国药妆行业投资现状与发展策略分析报告2022-2028年
- 汇编语言(十九)之删除数组中的元素
- EbN0、SNR、0.1nmOSNR的区别与联系
- 飞行计算机人机工程,人机工程学版
- magento 1.9 用户无法登录 magento 1.9 customer can not login
- Java Web Start简介
- SpringBoot 整合 Security5
- 4775电子书免费链接
- 一则 HTTP 405 Method Not Allowed 的解决办法
- python 基于smb通信协议实现NAS服务器文件上传和下载
- 基于51单片机的交通灯仿真方案原理图设计一个数码管
- Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(上)
- Python 3 《Class》入门练习
- 服务器打包文件工具,项目增量发版之全自动打包流程(patch-generator-desk打包软件)...
- J2SE:总结—基础很重要哈!
- 有道云笔记如何修改全局默认字体样式
- 冒泡排序-java版
- 网页复选框设置只能选一个_网页自动填表基础教程从简单开始