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 地址栏信息的获取代码
Jan 07 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
php中session退出登陆问题
Feb 27 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
php取得字符串首字母的方法
Mar 25 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
Yii框架操作cookie与session的方法实例详解
Sep 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
获得Google PR值的PHP代码
2007/01/28 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php-fpm中max_children的配置
2019/03/15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python中反射用法实例
2015/03/27 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python 使用多属性来进行排序
2019/09/01 Python
python实现扫雷小游戏
2020/04/24 Python
教育专业个人求职信
2013/12/02 职场文书
农民入党思想汇报
2014/01/03 职场文书
党校培训思想汇报
2014/01/03 职场文书
党员三严三实心得体会
2014/10/13 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
学生病假条范文
2015/08/17 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
使用CSS实现音波加载效果
2023/05/07 HTML / CSS