PHP unset函数原理及使用方法解析


Posted in PHP onAugust 14, 2020

unset—释放给定的变量

说明

unset(mixed$var[,mixed$...] ) :void

unset()销毁指定的变量。

unset()在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。

<?php 
function destroy_foo() { 
  global $foo; 
  unset($foo); 
} 
 
$foo = 'bar'; 
destroy_foo(); 
echo $foo; 
?>

以上例程会输出:

bar

如果您想在函数中unset()一个全局变量,可使用$GLOBALS数组来实现:

<?php 
function foo()  
{ 
  unset($GLOBALS['bar']); 
} 
 
$bar = "something"; 
foo(); 
?>

如果在函数中unset()一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。

<?php 
function foo(&$bar) { 
  unset($bar); 
  $bar = "blah"; 
} 
 
$bar = 'something'; 
echo "$barn"; 
 
foo($bar); 
echo "$barn"; 
?>

以上例程会输出:

something
something

如果在函数中unset()一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。

<?php 
function foo() 
{ 
  static $bar; 
  $bar++; 
  echo "Before unset: $bar, "; 
  unset($bar); 
  $bar = 23; 
  echo "after unset: $barn"; 
} 
 
foo(); 
foo(); 
foo(); 
?>

以上例程会输出:

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23

参数

var

要销毁的变量。

...

其他变量……

返回值

没有返回值。

范例

Example #1unset()示例

<?php
// 销毁单个变量
unset ($foo);

// 销毁单个数组元素
unset ($bar['quux']);

// 销毁一个以上的变量
unset($foo1, $foo2, $foo3);
?>

Example #2 使用(unset)类型强制转换

(unset)类型强制转换常常和函数unset()引起困惑。 为了完整性,(unset)是作为一个NULL类型的强制转换。它不会改变变量的类型。

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

以上例程会输出:

NULL
string(6) "Felipe"

注释

  • Note:因为是一个语言构造器而不是一个函数,不能被可变函数调用。
  • It is possible to unset even object properties visible in current context.
  • 在 PHP 5 之前无法在对象里销毁$this。
  • 在unset()一个无法访问的对象属性时,如果定义了__unset()则对调用这个重载方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP网上调查系统
Oct 09 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP4中session登录页面的应用
Jul 25 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
php curl选项列表(超详细)
Jul 01 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
PHP后门隐藏的一些技巧总结
Nov 04 PHP
PHP常量及变量区别原理详解
Aug 14 #PHP
PHP获取当前时间不准确问题解决方案
Aug 14 #PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 #PHP
php实现微信和支付宝支付的示例代码
Aug 11 #PHP
php封装实现钉钉机器人报警接口的示例代码
Aug 08 #PHP
基于PHP的微信公众号的开发流程详解
Aug 07 #PHP
php+js实现点赞功能的示例详解
Aug 07 #PHP
You might like
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
浅谈Vue.js
2017/03/02 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
详解Django中Request对象的相关用法
2015/07/17 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
python使用zip将list转为json的方法
2018/12/31 Python
python的pstuil模块使用方法总结
2019/07/26 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
房地产员工找工作的自我评价
2013/11/15 职场文书
倡议书的写法
2014/08/30 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
MySQL 覆盖索引的优点
2021/05/19 MySQL
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS