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 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
php查看网页源代码的方法
Mar 13 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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 自定义错误处理函数的使用详解
2013/05/10 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
详解如何减少python内存的消耗
2019/08/09 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
浅析python函数式编程
2020/09/26 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
关于热爱祖国的演讲稿
2014/05/04 职场文书
战友聚会策划方案
2014/06/13 职场文书
教师自查自纠材料
2014/10/14 职场文书
个人合伙协议书范本
2014/10/14 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
新闻简讯格式及范文
2015/07/22 职场文书