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如何删除静态变量相关推荐

  1. linux删除静态路由,centos7如何删除静态路由条目

    linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 de ...

  2. 环境变量基本操作及path环境变量

    环境变量基本操作及path环境变量 环境变量的解释 环境变量的一些基本操作 path环境变量 环境变量的解释 环境变量就是操作系统当中的一些变量,指在操作系统中用来指定操作系统运行环境的一些参数.环境 ...

  3. c# 变量,对象,静态类型,集合类的线程安全回顾

    1.变量的线程安全性与变量的作用域有关. 2.对象 对象是类型的实例 在创建对象时,会单独有内存区域存储对象的属性和方法.所以,一个类型的多个实例,在执行时,只要没有静态变量的参与,应该都是线程安全的 ...

  4. VBA学习(一)启用VBA、变量、常量、静态变量、字符串拼接、循环语句与判断语句

    目录索引 在Excel中启用VBA 变量的强制声明 静态变量 静态变量值消失的情况 常量 循环语句 FOR循环 Do While循环 Do Until循环 Do--Loop While循环 IF判断语 ...

  5. ensp删除静态路由命令_(温州大学)路由与交换机 期末试卷及解析

    一.单选题 1.什么是最后选用网关? A.另一台路由器的 IP 地址 B. Internet 提供商的 IP 地址 C.丢弃数据包送达的位置 D.描述主机设备上默认网关的术语 解析: A.即使最后选用 ...

  6. static的三种用法,定义静态变量,静态函数,静态代码块!

    static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...

  7. 删除静态 IP 路由

    删除静态 IP 路由 打开"命令提示符". 在命令提示符下,键入: route delete destination 其中: destination指定远程 TCP/IP 主机或网 ...

  8. Kotlin实战指南二:变量、常量、静态常量

    转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details/87811333 本文出自[赵彦军的博客] Kotlin初体验二:变量.常量.静态常 ...

  9. java静态局部变量_java中成员变量,局部变量,静态变量的辨析

    转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...

最新文章

  1. 通过组策略和注册表关闭win7 UAC。
  2. Devexpress 10.2.3 Demo 批量生成脚本
  3. 两个“不合理继承 ”的判定标识
  4. VTK:PolyData之BooleanOperationPolyDataFilter
  5. LeetCode 437. Path Sum III (STL map前缀和)
  6. Shiro 编码/加密
  7. 数字图像处理总结(冈萨雷斯版)
  8. 南工院linux考试题库,操作系统复习题..doc
  9. 并发编程之进程池,线程池 和 异步回调,协程
  10. php java openssl ras_php基于openssl的rsa加密解密示例
  11. MySql、Oracle、MSSQL中的字符串的拼接
  12. 常用Python模块下载网站
  13. CleanMyPC中文版切换教程(专注于电脑缓存文件清理的工具)
  14. 为什么郭台铭才是夏普的最佳归宿?
  15. 共模电压和差模电压两种理解方式
  16. 计算机课搞事情检讨,【热门】作弊检讨书范文10篇
  17. 控制系统中带宽的理解
  18. 「Java工具类」汉语转拼音工具类HanyuPinyinHelper.java
  19. Neo4j:SLM群集算法的过程
  20. TensorFlow Lite编译Android so库

热门文章

  1. Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
  2. R语言dplyr包near函数查看向量对应元素是否相同或者相近实战
  3. 句法分析是什么?成分句法分析、依存句法分析又是什么?他们之间有什么区别?
  4. 列举一些RNN类模型的常见使用形式以及常见的应用
  5. ModuleNotFoundError: No module named ‘scipy.spatial.transform._rotation_groups‘
  6. 影像组学视频学习笔记(15)-ROC曲线及其绘制、Li‘s have a solution and plan.
  7. c语言求婚代码大全,这是我见过最浪漫的程序员求婚方式
  8. 一张图追踪测序的大历史背景
  9. python 循环批量生成变量
  10. ASP .NET Core MVC Entity Framework 旧书交易网站