首页 > 后端开发 > PHP问题 > php如何使用函数销毁变量

php如何使用函数销毁变量

醉折花枝作酒筹
发布: 2023-03-11 22:18:02
原创
1744 人浏览过

上一篇文章我们了解了反序列化对象或数组的方法,有需要的请看《php如何反序列化数组和对象》。这次我们向大家介绍使用函数销毁变量的方法,有需要的可以参考参考。

在开始文章之前,我们先来看一下什么是变量的销毁。

PHP的变量或对象的销毁可以分成显式销毁和隐式销毁:

1、显式销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL;

2、隐式销毁,PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉。

我们今天要介绍的就是显式销毁中的unset。

我们先来看一个小栗子。

<?php
class Human { 
  public $name = &#39;张三&#39;; 
  public $gender = null; 
  public function __destruct() { 
      echo &#39;结束!<br />&#39;; 
  } 
} 
$a = new Human(); 
$b = $c = $d = $a;
unset($a);
$d=null;


echo &#39;<hr />&#39;;
var_dump($a);
echo &#39;<hr />&#39;;
var_dump($b);
echo &#39;<hr />&#39;;
var_dump($c);
echo &#39;<hr />&#39;;
var_dump($d);
?>
登录后复制

结果是

_F~W%[91B`[2N`4PNKH0)W8.png

话不多说,让我们来看一下这个函数吧。

unset()函数用于销毁给定的变量。

所以unset()并没有真正销毁变量中内存值,仅仅是切断了变量与内存之间的关系,并将变量名也给干掉了,但内存只要还被引用着就不会被释放;而在PHP中对象的传值默认是引用传值,这也解释了Human类中,$a被unset()了,但是$b =$c = $d一样有值。

再来看看这个函数的语法吧。

void unset (要销毁的变量)
登录后复制

如果unset()是函数中的全局变量,则只销毁局部变量,并且调用环境中的变量将保持与调用unset()之前相同的值。

如果unset()是函数中通过引用传递的变量,则只销毁局部变量,并且调用环境中的变量将保持与调用unset()之前相同的值。

如果unset()是函数中的静态变量,则静态变量将在函数中销毁。但是,当再次调用此函数时,静态变量将恢复到上次销毁之前的值。

就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

以上是php如何使用函数销毁变量的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板