php unset 静态变量,php如何删除静态变量
php删除静态变量的方法:可以通过重新定义的方式进行删除,如【$temp = null】。不可以使用unset()函数删除静态变量,因为该函数只是销毁了局部变量。
PHP设置了静态变量,如果需要销毁这个静态变量,有一个需要注意的地方,如果使用unset($tmp)来删除,那么你会发现一件事,比如一个递归函数,里面需要设有设置一个静态变量,然后这个递归函数需要在foreach()中使用,当执行这个递归函数第一次时,需要清空值。如果使用unset()是没有效果的,查阅资料后发现应该使用$tmp=null。
(推荐教程:php视频教程)
数据原型是一个数组;$data=[
'1'=>[
'pid'=>0,
'title'=>'test1'
],
'2'=>[
'pid'=>1,
'title'=>'test2'
],
'3'=>[
'pid'=>2,
'title'=>'test3'
],
];
用unset():function getBreadNav($data,$id,$mark=1){
static $tmp;
if($mark==1){
unset();
}
if(isset($data[$id])){
$tmpresult['title']=$data[$id]['title'];
$tmp[]=$tmpresult;
getBreadNav($data,$data[$id]['pid'],$mark=2);
}
return $tmp;
}
给变量赋值null:function getBreadNav($data,$id,$mark=1){
static $tmp;
if($mark==1){
$tmp=null;
}
if(isset($data[$id])){
$tmpresult['title']=$data[$id]['title'];
$tmp[]=$tmpresult;
getBreadNav($data,$data[$id]['pid'],$mark=2);
}
return $tmp;
}
这是循环开始:for($i=0;$i<5;$i++){
getBreadNav($data,3);
}
需要注意的是,手册中有明确的指示:如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。所以这里我们需要做的就是清空,赋值为null就好了啊。
注意:
unset()在函数中的行为会依赖于想要销毁的变量的类型而有所不同。
如果在函数中unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。
如果我们要注销一个静态变量,只能通过重新定义的方式进行清空。
相关推荐:php培训
php unset 静态变量,php如何删除静态变量相关推荐
- linux删除静态路由,centos7如何删除静态路由条目
linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 de ...
- 环境变量基本操作及path环境变量
环境变量基本操作及path环境变量 环境变量的解释 环境变量的一些基本操作 path环境变量 环境变量的解释 环境变量就是操作系统当中的一些变量,指在操作系统中用来指定操作系统运行环境的一些参数.环境 ...
- c# 变量,对象,静态类型,集合类的线程安全回顾
1.变量的线程安全性与变量的作用域有关. 2.对象 对象是类型的实例 在创建对象时,会单独有内存区域存储对象的属性和方法.所以,一个类型的多个实例,在执行时,只要没有静态变量的参与,应该都是线程安全的 ...
- VBA学习(一)启用VBA、变量、常量、静态变量、字符串拼接、循环语句与判断语句
目录索引 在Excel中启用VBA 变量的强制声明 静态变量 静态变量值消失的情况 常量 循环语句 FOR循环 Do While循环 Do Until循环 Do--Loop While循环 IF判断语 ...
- ensp删除静态路由命令_(温州大学)路由与交换机 期末试卷及解析
一.单选题 1.什么是最后选用网关? A.另一台路由器的 IP 地址 B. Internet 提供商的 IP 地址 C.丢弃数据包送达的位置 D.描述主机设备上默认网关的术语 解析: A.即使最后选用 ...
- static的三种用法,定义静态变量,静态函数,静态代码块!
static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...
- 删除静态 IP 路由
删除静态 IP 路由 打开"命令提示符". 在命令提示符下,键入: route delete destination 其中: destination指定远程 TCP/IP 主机或网 ...
- Kotlin实战指南二:变量、常量、静态常量
转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87811333 本文出自[赵彦军的博客] Kotlin初体验二:变量.常量.静态常 ...
- java静态局部变量_java中成员变量,局部变量,静态变量的辨析
转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...
最新文章
- 通过组策略和注册表关闭win7 UAC。
- Devexpress 10.2.3 Demo 批量生成脚本
- 两个“不合理继承 ”的判定标识
- VTK:PolyData之BooleanOperationPolyDataFilter
- LeetCode 437. Path Sum III (STL map前缀和)
- Shiro 编码/加密
- 数字图像处理总结(冈萨雷斯版)
- 南工院linux考试题库,操作系统复习题..doc
- 并发编程之进程池,线程池 和 异步回调,协程
- php java openssl ras_php基于openssl的rsa加密解密示例
- MySql、Oracle、MSSQL中的字符串的拼接
- 常用Python模块下载网站
- CleanMyPC中文版切换教程(专注于电脑缓存文件清理的工具)
- 为什么郭台铭才是夏普的最佳归宿?
- 共模电压和差模电压两种理解方式
- 计算机课搞事情检讨,【热门】作弊检讨书范文10篇
- 控制系统中带宽的理解
- 「Java工具类」汉语转拼音工具类HanyuPinyinHelper.java
- Neo4j:SLM群集算法的过程
- TensorFlow Lite编译Android so库
热门文章
- Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
- R语言dplyr包near函数查看向量对应元素是否相同或者相近实战
- 句法分析是什么?成分句法分析、依存句法分析又是什么?他们之间有什么区别?
- 列举一些RNN类模型的常见使用形式以及常见的应用
- ModuleNotFoundError: No module named ‘scipy.spatial.transform._rotation_groups‘
- 影像组学视频学习笔记(15)-ROC曲线及其绘制、Li‘s have a solution and plan.
- c语言求婚代码大全,这是我见过最浪漫的程序员求婚方式
- 一张图追踪测序的大历史背景
- python 循环批量生成变量
- ASP .NET Core MVC Entity Framework 旧书交易网站