广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php销毁变量的2种方法是什么
  • 941
分享到

php销毁变量的2种方法是什么

php销毁变量 2017-09-22 11:09:31 941人浏览 才女
摘要

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑PHP的变量或对象的销毁可以分成显式销毁和隐式销毁:显式销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL; 隐式销毁,php是脚本语言,在代

教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

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

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

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

因此,销毁变量的两种方法:

  • unset()

  • $varname=null

举例来说:

class Human { 
  public $name = '张三'; 
  public $gender = null; 
  public function __destruct() { 
      echo '死了!<br />'; 
  } 
} 
$a = new Human(); 
$b = $c = $d = $a;
unset($a);
$d=null;


echo '<hr />';
var_dump($a);
echo '<hr />';
var_dump($b);
echo '<hr />';
var_dump($c);
echo '<hr />';
var_dump($d);

结果如下:

Notice: Undefined variable: a in /Library/WEBServer/Documents/test.php on line 42
NULL
object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL }
object(Human)#1 (2) { ["name"]=> string(6) "张三" ["gender"]=> NULL }
NULL 死了!

首先我们要知道,在PHP中,变量名是存储在内存栈中,它是指向堆中具体内存的地址,通过变量名查找堆中的内存; 因此我们可以得出结论:

<?php
$a = 1;
$b = &$a;
unset($a);
var_dump($a); 
var_dump($b);

结果是:

Notice: Undefined variable: a in E:\amp\apache\htdocs\index.php on line 5
NULL int(1)

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

$varname=null,变量名依然存在,但是内存值却被干掉了。那么在引用传值的情况下又是如何呢?举例:

<?php        
$a = 1;        
$b = &$a;        
$a=null;        
var_dump($a);        
var_dump($b);

输出的结果是:

NULL NULL

所以,$varname=null,虽然变量名和内存指向都还存在,但是内存中的值却是完全删除掉了。

--结束END--

本文标题: php销毁变量的2种方法是什么

本文链接: https://www.lsjlt.com/news/165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php销毁变量的2种方法是什么
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑PHP的变量或对象的销毁可以分成显式销毁和隐式销毁:显式销毁,当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL; 隐式销毁,PHP是脚本语言,在代...
    99+
    2017-09-22
    php 销毁变量
  • Java Session获取或销毁的方法是什么
    在Java中,可以使用HttpServletRequest对象来获取和销毁会话。 要获取会话,可以使用以下方法之一: 使用Http...
    99+
    2023-10-21
    Java Session
  • Druid连接创建及销毁的方法是什么
    这篇文章主要介绍“Druid连接创建及销毁的方法是什么”,在日常操作中,相信很多人在Druid连接创建及销毁的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Druid连接创建及销毁的方法是什么”的疑...
    99+
    2023-07-05
  • Spring中Bean初始化和销毁的方法是什么
    今天小编给大家分享一下Spring中Bean初始化和销毁的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sprin...
    99+
    2023-07-06
  • Bean自定义初始化和销毁方法是什么
    今天小编给大家分享一下Bean自定义初始化和销毁方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Bean三种自定义初...
    99+
    2023-06-29
  • php变量赋值的方法是什么
    在PHP中,变量可以通过简单的赋值操作来进行赋值。赋值操作使用等号(=)进行,将右边的值赋给左边的变量。例如,要将值"Hello W...
    99+
    2023-08-29
    php
  • Singleton模式创建、多线程与销毁的方法是什么
    这篇文章主要介绍“Singleton模式创建、多线程与销毁的方法是什么”,在日常操作中,相信很多人在Singleton模式创建、多线程与销毁的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Singl...
    99+
    2023-06-18
  • php方法中的静态变量是什么
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php方法中的静态变量是什么?PHP中的静态变量及static静态变量使用详解静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会...
    99+
    2017-05-04
    php 静态变量
  • php中变量的设置方法是什么
    这篇文章主要介绍“php中变量的设置方法是什么”,在日常操作中,相信很多人在php中变量的设置方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中变量的设置方法是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • php类中定义变量的方法是什么
    在 PHP 的类中,定义变量有两种方法:属性和常量。属性属性是定义在类中的变量,可以在整个类中访问和修改。在 PHP 中,属性有三种访问控制符号:public(公共的)、protected(受保护的)和 private(私有的)。公共属性在...
    99+
    2023-05-14
  • Linux环境变量配置的6种方法分别是什么
    这篇文章给大家介绍Linux环境变量配置的6种方法分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有...
    99+
    2023-06-26
  • python变量传递的方法是什么
    在Python中,变量传递有两种方式:传值和传引用。1. 传值(传递对象的值):传值是指将变量的值复制一份,然后将复制的值传递给函数...
    99+
    2023-10-11
    python
  • matlab定义变量的方法是什么
    在MATLAB中,可以使用以下几种方法来定义变量:1. 直接赋值:使用等号(=)将一个值赋给变量。例如:a = 5;2. 使用函数:...
    99+
    2023-09-12
    matlab
  • PHP预定义常量和超全局变量的方法是什么
    今天小编给大家分享一下PHP预定义常量和超全局变量的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。预定义常量预定义...
    99+
    2023-07-05
  • iPhone进行录音转文字的2种方法是什么
    iPhone进行录音转文字的2种方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用过苹果手机的朋友们,应该也不在少数,但是你们使用苹果手机时,是否发现苹果手机也能够进...
    99+
    2023-06-02
  • linux shell定义变量的方法是什么
    在Linux shell中,可以使用以下方法来定义变量:1. 直接赋值:使用等号(=)将变量名和值进行赋值操作。例如:`varnam...
    99+
    2023-09-25
    linux shell
  • javascript中声明变量的方法是什么
    这篇文章主要介绍“javascript中声明变量的方法是什么”,在日常操作中,相信很多人在javascript中声明变量的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • java变量的初始化方法是什么
    Java变量的初始化方法有以下几种:1. 声明变量时直接赋值:可以在声明变量时直接为其赋初值,例如:```javaint num =...
    99+
    2023-09-15
    java
  • vs监视变量值的方法是什么
    有几种方法可以监视变量的值:1. 打印输出:使用语言提供的打印函数或语句,在关键位置打印变量的值,可以观察程序执行过程中变量的变化。...
    99+
    2023-08-08
    vs
  • Python变量与赋值的方法是什么
    本篇内容介绍了“Python变量与赋值的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python是一门独特的语言,与C语言有很大...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作